Intereting Posts
Удаление записи из таблицы MySQL с использованием переменной PHP Как правильно включить расширение песочницы twig в Symfony2? Разработка пакета Laravel 5: с чего начать? Throw Exception, сообщение, переданное в конструктор, не будет отображаться в PHP-ошибке Задание результатов цикла Извлечение данных из строки json со структурным языком Как удалить первый пробел строки Как преобразовать данные latin1_swedish_ci в utf8_general_ci? Отправка HTML-сообщения через PEAR при использовании аутентификации SMTP возвращает ошибку Вызовите Python из PHP и получите код возврата выбрать все комментарии со всеми сообщениями php mysql почему 0.1 + 0.2-0.3 = 5.5511151231258E-17 в php Как имитировать более одного запроса (то есть 4000 или более) на одной странице для проверки производительности? строки, затронутые в обновлении mysql с помощью PHP Поиск файла PHP (во время выполнения), в котором был определен класс

Флажок PHP form и неопределенный индекс

Я получаю сообщение об ошибке «Неопределенный индекс» при отправке формы с отмеченным флажком. Есть ли другой способ помимо запуска «isset» или «empty» check для каждого отдельного опубликованного значения?

Я посмотрел на этот вопрос, и у меня возникли проблемы с верой в то, что это единственное решение.

Ниже приведен пример кода: EDIT: пожалуйста, не то, что это не фактические имена столбцов таблиц; они называются уникальными (например, postAddress, displayPhone, student и т. д.),

Вы можете написать функцию, которая проверяет, был ли установлен флажок:

function checkbox_value($name) { return (isset($_POST[$name]) ? 1 : 0); } 

Теперь вызовите эту функцию в вашем запросе следующим образом:

 $sql = 'UPDATE table SET '. 'checkbox1 = '. checkbox_value('checkbox1') .','. 'checkbox2 = '. checkbox_value('checkbox2') .','. 'checkbox3 = '. checkbox_value('checkbox3') .','. 'checkbox4 = '. checkbox_value('checkbox4') .','. 'checkbox5 = '. checkbox_value('checkbox5') .','. "LIMIT 1"; 

Если вы хотите включить / выключить флажок, вы можете написать скрытое значение, прежде чем писать этот флажок.

 <input type="hidden" name="checkbox1" value="no" /> <input type="checkbox" name="checkbox1" value="yes" /> 

Это всегда будет возвращать значение, либо нет (по умолчанию, если флажок установлен по умолчанию) или да.

Вы можете проверить ввод с функциями фильтра с помощью FILTER_VALIDATE_BOOLEAN .

Его проще, если вы пишете функцию для этого, например formCheckbox ($ name), с параметрами значений (значение «on» означает, что флажок установлен по умолчанию), атрибуты и т. Д.

попробуйте следующее

 <?php //first part of the query $query = "UPDATE table SET "; $howManyCheckboxes = 5; //for every checkbox , see if it exist , if it is, add it to the query for($i=1;$i<=$howManyCheckboxes;$i++) { if(isset($_POST['checkbox'.$i])) { $query = $query . " checkbox".$i."='".escape($_POST['checkbox'.$i])."',"; } } //lets remove the last coma $query = substr($query,0,-1); //add the rest of the query $query = $query . " LIMIT 1"; $result = mysql_query( $query ); if( ! $result ) echo "um, not everything went as expected."; ?>