PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 12
hardcore Отправлено: 24 Сентября, 2015 - 12:38:34 • Тема: Избитые чекбоксы на аяксе • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 170
SAD пишет:
тут. миллион parent
CODE (javascript):
скопировать код в буфер обмена
  1. $(this).parent().parent().parent().attr("id")


тут дублирование кода

CODE (javascript):
скопировать код в буфер обмена
  1. if ($(this).attr("checked")) {
  2.  
  3.                     $.ajax ({
  4.                         url: "check.php",
  5.                         type: "POST",
  6.                         data: {id: id, table: table, check: 1}
  7.  
  8.                     });
  9.  
  10.                 } else {
  11.  
  12.                     $.ajax ({
  13.                         url: "check.php",
  14.                         type: "POST",
  15.                         data: {id: id, table: table, check: 0}
  16.  
  17.                     });
  18.                 }


Усли бы у Вас был выпадающий список с 10 значениями вместо чекбокса, у Вас было бы 10 условий и продублированного кода?

А, ну это все бы попровилось по ходу изучения JS. Главное, что я разобрался и в целом-то правильно.
hardcore Отправлено: 23 Сентября, 2015 - 13:00:36 • Тема: Избитые чекбоксы на аяксе • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 170
SAD пишет:
Это п... Ц а не решение

CODE (javascript):
скопировать код в буфер обмена
 
$("input").click (function () {
var $this = $(this);
 
                $.ajax ({
                        url: "check.php",
                        type: "POST",
                        data: {
id: $this.attr('id'),
table: $this.closest('table').attr('id'),
check: +$this.is(':checked')
}
 
                    });
 
            });
 


Так и в чем тут проблема то?
hardcore Отправлено: 22 Сентября, 2015 - 19:05:07 • Тема: Избитые чекбоксы на аяксе • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 170
Panoptik пишет:
даю практически готовый ответ

http://www[dot]sitepoint[dot]com/forums/[dot][dot][dot]heckbox-onchange
можете не благодарить


Благодарю, но делал иначе.

Короче, мужики. Вот реально готовое решение (не знаю, насколько это говнокод в JS, но работает просто ВАХ!)
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function () {
  2.  
  3.  
  4.             $("input").click (function () {
  5.  
  6.                 var id = $(this).parent().attr("id");
  7.                 var table = $(this).parent().parent().parent().attr("id");
  8.  
  9.                 if ($(this).attr("checked")) {
  10.  
  11.                     $.ajax ({
  12.                         url: "check.php",
  13.                         type: "POST",
  14.                         data: {id: id, table: table, check: 1}
  15.  
  16.                     });
  17.  
  18.                 } else {
  19.  
  20.                     $.ajax ({
  21.                         url: "check.php",
  22.                         type: "POST",
  23.                         data: {id: id, table: table, check: 0}
  24.  
  25.                     });
  26.                 }
  27.  
  28.             });
  29.  
  30.         });


Ну там с парентами намутил потому что у каждого блока чекбоксов своя таблица, ну и передавал, в какую записывать.

Вот как выводятся:

PHP:
скопировать код в буфер обмена
  1. while($i<$array['count']) {
  2.             echo '<li id="' . $array['id'][$i] . '">
  3.                <input '.$check.' type="checkbox" id="' . $array['id'][$i] . '"/>' . $array['names'][$i] . '
  4.                </li>';
  5.             $i++;
  6.         }
  7.  


Тут в общем-то фишка в том, что берется айдишник родительского элемента. Хотя, тут вроде можно и проще было сделать: просто взять айдишник инпута.
В общем, все проще, чем казалось.
hardcore Отправлено: 22 Сентября, 2015 - 16:32:12 • Тема: Избитые чекбоксы на аяксе • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 170
SAD пишет:
не прокатит, так как автору нужно, чтобы ушли 0 или 1. сериалайз не пашет для чекбоксов
и ради 3 строчек чистого js незачем прикручивать jquery


Именно!
Если обработка формы целиком - говнокод, то избегаю, как могу.

По сабжу: насколько я понимаю принцип, каждый чекбокс, по сути, должен сабмитить свой name и value в php-файл, где записывает полученное значение в колонку (название колонки аналогично названию чекбокса). За изучение скриптов я только взялся, а данный функционал нужен раньше, чем я успею все понять. В общем, нельзя ли написать такой сценарий, к которому бы обращался чекбокс на онклик?
hardcore Отправлено: 22 Сентября, 2015 - 10:11:19 • Тема: Избитые чекбоксы на аяксе • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 170
Неужели никто не знает, как это сделать? Огорчение
hardcore Отправлено: 22 Сентября, 2015 - 00:06:51 • Тема: Избитые чекбоксы на аяксе • Форум: Напишите за меня, пожалуйста

Ответов: 13
Просмотров: 170
Доброй ночи, случайный гость.
Будь любезен, подскажи, как осуществить такую тему:

Есть "туева хуча" чекбоксов. И, чтобы не грузить форму, да и для удобства пользователя, хочу, чтобы при нажатии на чекбокс передавался нужный мне параметр (0 либо 1, разумеется), который хранится в базе в таком же виде, и быстренько находил свою ячеечку в базе, где бы мог спокойно себе дальше жить. В аяксе я пока ни в зуб ногой. Принцип понимаю, язык пока не знаю.
В общем, заранее благодарю, милсдарь.
hardcore Отправлено: 14 Сентября, 2015 - 13:17:50 • Тема: mod_rewrite • Форум: Вопросы новичков

Ответов: 4
Просмотров: 149
DeepVarvar пишет:
http://forum.php.su/topic.php?forum=33&topic=736


Спасбио.
Но, допустим, я ее прикрутил, как это на рерайте отразится?

Или это чисто для подключения разных модулей? Но в таком случае, как мне передавать другие параметры через рерайт?
hardcore Отправлено: 14 Сентября, 2015 - 12:43:27 • Тема: mod_rewrite • Форум: Вопросы новичков

Ответов: 4
Просмотров: 149
DeepVarvar пишет:
Надо мутить единую точку входа, а не эти точечные костылики.


Вот я и обращаюсь за помощью, чтобы понять, как это осуществить.
hardcore Отправлено: 14 Сентября, 2015 - 12:32:03 • Тема: mod_rewrite • Форум: Вопросы новичков

Ответов: 4
Просмотров: 149
Выручайте, мужики.
Начал изучать mod_rewrite и столкнулся с такой проблемой:

Данное правило работает и переписывает данную ссылку, но машина начинает считать, то существует папка с названием catalog и все относительные пути не работают. Если убрать слеш в начале правила, тогда выводится ошибка 404.

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteRule ^catalog/([a-zA-Z0-9_-]+)$ /catalog.php?of=$1 [L]


Также не очень понятно, как передать еще несколько параметров. Т.е. в каталоге есть еще доп. фильтры. Так вот, нужно для каждого уровня прописывать свое правило или одно на всю структуру?

Спасибо.
hardcore Отправлено: 25 Мая, 2015 - 15:09:54 • Тема: Вывод и перезапись чекбоксов • Форум: Программирование на PHP

Ответов: 4
Просмотров: 316
Tyoma5891 пишет:
типа такого:
CODE (html):
скопировать код в буфер обмена
  1. <input  type="checkbox" name="book-3" value="on" <?php if ($row['book-3'] == 1) {echo 'checked="checked"';}else{echo "";} ?>/>


Я пробовал. Этот элс ни на что не влияет. Все равно в базу записывается то, что из нее и досталось.
hardcore Отправлено: 25 Мая, 2015 - 14:58:57 • Тема: Вывод и перезапись чекбоксов • Форум: Программирование на PHP

Ответов: 4
Просмотров: 316
Tyoma5891 пишет:
hardcore пишет:

Подскажите, пожалуйста, в чем может быть проблема.

в том что пользователь их не меняет, они постоянно выбранные


Так и как сделать, чтобы, учитывая базу они были априори выбраны, но пользователь мог их поменять и записать новые значения чекнутых?
hardcore Отправлено: 25 Мая, 2015 - 13:25:43 • Тема: Вывод и перезапись чекбоксов • Форум: Программирование на PHP

Ответов: 4
Просмотров: 316
День добрый.

Да, я новичок. Возникла такая проблема.
Значит, храню я в базе чекбоксы. Вывожу их в форму для редактирования учетной записи компании. И когда меняю положения этих чекбоксов с чекнутых на нечекнутые и обратно, у меня в POST приходит то, что я выводил с базы, а не пользовательские значения.

Подскажите, пожалуйста, в чем может быть проблема.
Спасибо.

Из базы достаю все стандартненько
CODE (htmlphp):
скопировать код в буфер обмена
  1. $query = "SELECT * FROM `comp` WHERE id = $compid";
  2. $res = mysql_query($query);
  3. $row = mysql_fetch_array($res);


Значицца, таким образом пихаю из базы в чекбокс
CODE (htmlphp):
скопировать код в буфер обмена
  1. <input  type="checkbox" name="book-3" value="on" <?php if ($row['book-3'] == 1) {echo 'checked="checked"';} ?>/>


А код обработки нет смысла пихать, т.к. все равно заданная из базы отметка "checked" пользователем из формы не меняется.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB