Добрый день
при нажатии на сheckbox в _POST нет никаких данных. пусто
в чем причина может быть?PHP:
<?php // test.php require_once ‘login.php’; try { $pdo = new PDO($attr, $user, $pass, $opts); } catch (PDOException $e) { throw new PDOException($e->getMessage(), (int)$e->getCode()); } $query = «SELECT `id`, `Name`, `Date_of`, `Time_of`, `Check`, `Task`, `Note`, `Note2`, `Source` FROM `Tasks`»; $result = $pdo->query($query); echo «<table> <tr> <th>Id</th> <th>Name</th> <th>Date_of</th> <th>Time_of</th> <th>Check</th> <th>Task</th> <th>Note</th> <th>Note2</th> <th>Source</th> </tr>»; { //print $_POST[‘id’]; //$query = «DELETE FROM classics WHERE isbn=$isbn»; //$result = $pdo->query($query); } { print $_POST[‘done’]; } print $_POST[‘done’]; while ($row = $result->fetch(PDO::FETCH_NUM)) { echo «<tr>»; for ($k = 0 ; $k < 9 ; ++$k) { if ($k === 4) { { //echo ‘<td><form action=»test.php» method=»post»><input type=»checkbox» name=»done» value=0></td>’; } else { //echo ‘<td><form action=»test.php» method=»post»><input type=»checkbox» name=»done» checked=»checked» value=1></td>’; } } else { } } echo <<<_END <td> <form action=‘test.php’ method=‘post’> <input type=‘hidden’ name=‘edit’ value=‘yes’> <input type=‘hidden’ name=‘id’ value=‘$r0’> <input type=‘submit’ value=‘Редактировать’></form> </td> <td> <form action=‘test.php’ method=‘post’> <input type=‘checkbox’ name=‘done’ value=‘0’> </td> <td> <select name=«veg» size=«1»> <option value=«Горох»>Горох</option> <option value=«Фасоль»>Фасоль</option> <option value=«Морковь»>Морковь</option> <option value=«Капуста»>Капуста</option> <option value=«Брокколи»>Брокколи</option> </select> </td> _END; echo «</tr>»; } echo «</table>»; $pdo = null; ?>
не тот раздел и вознаграждение не указано )
в коде полный бред… ни одна форма не закрыта, ни одного submit нет
форма в форме.. кароче полный бред…это условие будет выполнено только в случае если чекбокс будет выбран… не выбранные чекбоксы в форме не передаются вообще
это выполнится — когда чекбокс не выбран .. то есть два раза проверка что существует .. и потом сравнение с 0 типа ложью… наверняка правильно надо так
PHP:
это выполнится — если чекбокс выбран
Спасибо
Это учебный код, я пока учусьречь идет о другом —
PHP:
print$_POST[‘done’];ничего не возвращает, даже если я буду нажимать чекбокс
Input находится за пределами формы.
PHP:
<?php //print $_POST[‘id’]; //$query = «DELETE FROM classics WHERE isbn=$isbn»; //$result = $pdo->query($query); } print $_POST[‘done’]; } ?> <table> <tr> <th>Id</th> <th>Name</th> <th>Date_of</th> <th>Time_of</th> <th>Check</th> <th>Task</th> <th>Note</th> <th>Note2</th> <th>Source</th> </tr> <tr> <td> <form action=’test.php’ method=’post’ id=»form_1″> <input type=»hidden» name=»edit» value=»yes»> <input type=»hidden» name=»id» value=»1″> <input type=»submit» value=»Редактировать»> </form> </td> <td> <input type=»checkbox» name=»done» value=»0″ form=»form_1″> </td> <td> <select name=»veg» size=»1″ form=»form_1″> <option value=»Горох»>Горох</option> <option value=»Фасоль»>Фасоль</option> <option value=»Морковь»>Морковь</option> <option value=»Капуста»>Капуста</option> <option value=»Брокколи»>Брокколи</option> </select> </td> </tr> </table>
PHP:
<td> <form action=‘test.php’ method=‘post’> <input type=‘hidden’ name=‘edit’ value=‘yes’> <input type=‘hidden’ name=‘id’ value=‘$r0’> <input type=‘submit’ value=‘Редактировать’></form> </td>этот код находится в том же месте что done, но id выдано, а done нет
почему?
В данной форме нет поля с done.
PHP:
echo <<<_END <td> <form action=‘test.php’ method=‘post’> <input type=‘hidden’ name=‘edit’ value=‘yes’> <input type=‘hidden’ name=‘id’ value=‘$r0’> <input type=‘submit’ value=‘Редактировать’></form> </td> <td> <form action=‘test.php’ method=‘post’> <input type=‘checkbox’ name=‘done’ value=‘0’> </td> <td> <select name=«veg» size=«1»> <option value=«Горох»>Горох</option> <option value=«Фасоль»>Фасоль</option> <option value=«Морковь»>Морковь</option> <option value=«Капуста»>Капуста</option> <option value=«Брокколи»>Брокколи</option> </select> </td> _END;вот здесь
Первая форма закрывается <input type=’submit’ value=’Редактировать’></form>
Вторая форма, где находится «<input type=’checkbox’ name=’done’ value=’0′>». Открывается, но не закрывается.
Если отправить первую форму отправятся edit и id. Если вторую в ней будет done, но нажав на кнопку ‘Редактировать’ отправляется первая форма.
В примере выше убрана вторая форма, а к первой форме присоединен»<input type=’checkbox’ name=’done’ value=’0′>»
Спасибо, очень дельное замечание
я исправил но все равно массив не отображаетсяPHP:
<td> <form action=‘test.php’ method=‘post’> <input type=‘hidden’ name=‘edit’ value=‘yes’> <input type=‘hidden’ name=‘id’ value=‘$r0’> <input type=‘submit’ value=‘Редактировать’> </form> </td> <td> <form action=‘test.php’ method=‘post’> <input type=‘checkbox’ name=‘done’ value=‘0’> </form> </td>
PHP:
<td> <form action=‘test.php’ method=‘post’ id=«form_1»> <input type=‘hidden’ name=‘edit’ value=‘yes’> <input type=‘hidden’ name=‘id’ value=‘1’> <input type=‘submit’ value=‘Редактировать’> </form> </td> <td> <input type=‘checkbox’ name=‘done’ value=‘0’ form=«form_1»> </td>К форме добавлен id=»form_1″, убрана вторая форма и input прикреплен к первой форме form=»form_1″. В таком варианте будет работать.
В вашем примере нажав на кнопку ‘Редактировать’ вторая форма с done не отправляется.
я сделал но не работает
мне нужно чтобы на кнопку отправлялась свои данные а по чукбоксу своиPHP:
<td> <form action=‘test.php’ method=‘post’ id=«form_1»> <input type=‘hidden’ name=‘edit’ value=‘yes’> <input type=‘hidden’ name=‘id’ value=‘$r0’> <input type=‘submit’ value=‘Редактировать’> </form> </td> <td> <input type=‘checkbox’ name=‘done’ value=‘0’ id=«form_1»> </td>
В таком случае нужны две формы. Каждая из них отправляется отдельно по нажатию кнопки в данной форме или по событию js для данной формы, но возможно не совсем понял тз.
хорошо
я убрал все формы
остался чекбокс, он тоже не возвращается данные
вопрос — почему?PHP:
<?php // test.php print $_POST[‘done’]; echo <<<_END <td> <form action=‘test.php’ method=‘post’> <input type=‘checkbox’ name=‘done’ value=‘0’> </form> </td> _END; ?>
Потому что не выполняется submit формы.
PHP: Работа с формами — Manual
Спасибо
но если я сделаю submit, у меня появится кнопка. а мне нужно чтобы по чукбоксу отправлялись данные
Отправка формы: событие и метод submit (javascript.ru)
Спасибо
как я понял обработка чекбокса возможна только с помощью JS?
а стандартными средствами POST нельзя?
Стандартными средствами html ?
стандартными средствами это отправка формы по нажатию на кнопку submit.Если нужна отправка формы без перезагрузки страницы, то с помощью js тогда
Добрый день!
Обработка событий происходит на JS в браузере.
В Вашем случае нужно установить на объект чекбокс обработчик события Click:HTML:Удачи!