Добрый день при нажатии на с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>"; if (isset($_POST['edit']) && isset($_POST['id'])) { //print $_POST['id']; //$query = "DELETE FROM classics WHERE isbn=$isbn"; //$result = $pdo->query($query); } if (isset($_POST['done']) && isset($_POST['done']) == 0) { print $_POST['done']; } print $_POST['done']; while ($row = $result->fetch(PDO::FETCH_NUM)) { echo "<tr>"; for ($k = 0 ; $k < 9 ; ++$k) { if ($k === 4) { if (htmlspecialchars($row[4]) == 0) { //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 "<td>" . htmlspecialchars($row[$k]) . "</td>"; } $r0 = htmlspecialchars($row[0]); } 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: if (isset($_POST['done']) && ($_POST['done'] == 0)) это выполнится - если чекбокс выбран
Спасибо Это учебный код, я пока учусь речь идет о другом - PHP: print$_POST['done']; ничего не возвращает, даже если я буду нажимать чекбокс
Input находится за пределами формы. PHP: <?php if (isset($_POST['edit']) && isset($_POST['id'])) { //print $_POST['id']; //$query = "DELETE FROM classics WHERE isbn=$isbn"; //$result = $pdo->query($query); } if (isset($_POST['done']) && isset($_POST['done']) == 0) { 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 нет почему?
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, у меня появится кнопка. а мне нужно чтобы по чукбоксу отправлялись данные
Спасибо как я понял обработка чекбокса возможна только с помощью JS? а стандартными средствами POST нельзя?
Стандартными средствами html ? стандартными средствами это отправка формы по нажатию на кнопку submit. Если нужна отправка формы без перезагрузки страницы, то с помощью js тогда
Добрый день! Обработка событий происходит на JS в браузере. В Вашем случае нужно установить на объект чекбокс обработчик события Click: HTML: <form action='test.php' method='post'> <input type='checkbox' name='done' value='0' onClick='this.parentElement.submit()'> </form> Удачи!