| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Вёрстка веб-сайтов > передача состояния checkbox |
| Автор: veterrus 14.8.2009, 11:58 |
| Помогите кто может! Не могу понять почему не работает код: Есть три файла. в первом файле есть checkbox: <input type="checkbox" name="field_first" value=first> во втором есть формы которые я заполняю. в третьем файле идет проверка состояния checkbox из первого файла и обработка формы из второго: if ( ! isset($_POST["field_first"]) ){ Действие1 } else { Действие2 } по цепочке через hidden, передаеться в третий файл: echo "<input type=\"hidden\" name=\"field_first\" value=$_POST["field_first"]>"; По идее если checkbox не отмечен должно выполняться Действие1, а выполняеться Действие2, или я что то напутал с isset или теряется во втором файле состояние checkbox? Как передать состояние checkbox через несколько файлов? Заранее спасибо за помощь |
| Автор: w03zd8rc 14.8.2009, 12:22 |
| а не проще ли в адресной строке состояние передавать тогда? |
| Автор: youri 14.8.2009, 12:22 |
| а у тебя что мастер, что ты checkbox'ы передаешь? |
| Автор: skyboy 14.8.2009, 13:54 | ||||||||
если у тебя checkbox отмечен, то будет формироваться такой код:
если у тебя checkbox не отмечен, то будет формироваться такой код:
что, кстати, некорректно. тебе надо значение value заключать в кавычки, как и name, тогда у тебя было бы корректное:
но твоя проблема не в этом. а в том, что это скрытое поле с именем field_first передается в любом случае(с value или без него)! и isset($_POST["field_first"]) всегда будет возвращать true. тебе надо проверять не наличие $_POST["field_first"], а содержимое этой переменной:
|
| Автор: bars80080 14.8.2009, 13:54 |
| ерунда, вы бы нарисовали себе эту цепочку и прояснили бы действия элементов с первого файла во второй ничего не передаётся, если чекбокс не нажат, но во втором у вас введено поле field_first, которое по любому будет передано дальше. это же поле hidden, переменная будет создана, даже с пустым значением, если в поле ничего не введено в таком случае для успешности проверки в третьем файле надо указать: if (empty($_POST["field_first"]) ){ |