Хорошо... поэтому в своих формах я устанавливаю все поля примерно так:
name="formdata['name']"
и name="formdata['active']"
.
Конечно, это означает, что все, что введено в эти поля, должно храниться в $_POST['formdata']['name']
и $_POST['formdata']['active']
.
Я делаю свои значения таким образом, потому что я передаю «данные формы» паре написанных мною функций (которые работают так, как должны). Теперь предположим, что я использую это для редактирования элемента или добавления нового элемента — имя будет выполнять эти функции так, как должно, и элемент будет сохранен со своим именем, но «активный» никогда не сохранится так, как должен. Поле ввода представляет собой флажок, если он установлен, значение равно "1".
Если я print_r($_POST['formdata'])
ввожу "Имя" и отмечаю "активно", я получаю следующее: Array ( ['name'] => Name ['active'] => 1 )
.
Выглядит хорошо, верно? Но когда я делаю следующее:
if (!isset($_POST['formdata']['active']) echo "Error 1";
if (empty($_POST['formdata']['active']) echo "Error 2";
if ($_POST['formdata']['active'] != 1) echo "Error 3";
Все они возвращают ошибки! Я сбит с толку этим. Я упускаю из виду что-то очень простое? Я думаю об этом уже как минимум 2 часа.
formdata
? - person Ry-♦   schedule 20.12.2011formdata
— я передаю это функциям, которые берут данные из формы и автоматически устанавливают свойства объекта, и строят «возврат», чтобы в случае ошибки Обнаруживается, когда модель проверяет ввод и пользователь возвращается к форме, поля, которые были введены, уже будут заполнены. - person tuespetre   schedule 20.12.2011var_dump($_POST['formdata']['active']);
выводит NULL, хотяprint_r($_POST['formdata']);
показывает['active'] => 1
. - person tuespetre   schedule 20.12.2011