Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обработка чекбоксов
 
 автор: alexander95   (25.02.2012 в 14:19)   письмо автору
 
 


В форме:
<input type='checkbox' name='accept'/>
В обработчике:
$status=isset($_POST['accept'])?($_POST['accept']=='on'?1:0):0;


В итоге у меня всегда 1 получается: и при отмеченном, и при неотмеченном. Как вообще их правильно обрабатывать?

  Ответить  
 
 автор: cheops   (25.02.2012 в 14:24)   письмо автору
 
   для: alexander95   (25.02.2012 в 14:19)
 

Вроде все работает. Или имеете в виду в форме? Это нужно специально программировать, назначая атрибут checked, если в POST-данных есть элемент с таким именем
<?php
  $status 
= isset($_POST['accept'])?($_POST['accept']=='on'?1:0):0;
?>
<form method="post">
<input
  type='checkbox'
 <?php if($status) echo "checked='checked'"?>
 name='accept' /> 
<input type='submit' value='OK' /> 
</form>

  Ответить  
 
 автор: alexander95   (25.02.2012 в 14:27)   письмо автору
 
   для: cheops   (25.02.2012 в 14:24)
 

Нет-нет, у меня есть чекбокс в форме, я его отправляю обработчику. Хоть там checked, хоть не checked, а отправляется по-любому &accept=on

  Ответить  
 
 автор: cheops   (25.02.2012 в 14:40)   письмо автору
 
   для: alexander95   (25.02.2012 в 14:27)
 

.

  Ответить  
 
 автор: task   (25.02.2012 в 14:27)   письмо автору
 
   для: alexander95   (25.02.2012 в 14:19)
 

Невыбранный чекбокс вообще не передается на сервер, так стоит ли проверять "on"?

  Ответить  
 
 автор: alexander95   (25.02.2012 в 14:27)   письмо автору
 
   для: task   (25.02.2012 в 14:27)
 

Передается, поверьте

  Ответить  
 
 автор: task   (25.02.2012 в 14:31)   письмо автору
 
   для: alexander95   (25.02.2012 в 14:27)
 

Что вы говорите?!

<?
print_r
($_POST);
?>

<form method="post">
<input type="checkbox" name="check" />
<input type="submit" value="Send" />
</form>


Ну-ка проверяйте....

  Ответить  
 
 автор: alexander95   (25.02.2012 в 14:35)   письмо автору
 
   для: task   (25.02.2012 в 14:31)
 

Ну ладно. Я аяксом принудительно передаю значение. Оно всегда on.

  Ответить  
 
 автор: task   (25.02.2012 в 14:39)   письмо автору
 
   для: alexander95   (25.02.2012 в 14:35)
 

А чего тогда вопрос задаете? Если он у вас всегда принудительно "on", то какие тогда вопросы "почему не работает"?

  Ответить  
 
 автор: alexander95   (25.02.2012 в 14:40)   письмо автору
 
   для: task   (25.02.2012 в 14:39)
 

Оно не принудительно on. Оно принудительно передается. Что тогда посоветуете?

  Ответить  
 
 автор: cheops   (25.02.2012 в 14:43)   письмо автору
 
   для: alexander95   (25.02.2012 в 14:40)
 

При формировании AJAX-запроса проверяйте состояние флажка, если он включен, включайте accept=on в запрос, если не включен - не включайте.

  Ответить  
 
 автор: task   (25.02.2012 в 14:47)   письмо автору
 
   для: alexander95   (25.02.2012 в 14:40)
 

Посоветую выбросить это, ибо если не выбрано, то оно и не нужно, достаточно проверить:

<?
$check 
= isset($_POST['check']) ? 0;
?>


и не писать лишнего в чем сами путаетесь.

  Ответить  
 
 автор: maha   (05.03.2012 в 14:07)   письмо автору
 
   для: alexander95   (25.02.2012 в 14:19)
 

Проверил все сказанное - не работает
сделал по-своему, но чувствую что что-то не так
вот:
echo"<br>WATER :" .$_POST["check"];
echo"<br>JUICE :" .$_POST["check1"];
echo"<br>VODDA :" .$_POST["check2"];
echo"<br>WINE :" .$_POST["check3"];
как видите для каждого имени свой сheck
а главное работает, хотя это противопоказано
Буду рад услышать критику в мой адрес в случае приведенной ошибки

  Ответить  
 
 автор: maha   (05.03.2012 в 14:46)   письмо автору
 
   для: maha   (05.03.2012 в 14:07)
 

при,допустим:
<INPUT type="checkbox"name="checkbox2" value="да">Tekila
<INPUT type="checkbox"name="checkbox2" value="да"Juice
<INPUT type="checkbox"name="checkbox3"value="да">Vodka
<INPUT type="checkbox"name="checkbox4"value="да">Wine

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования