Я новичок в php … Я боролся с моими динамическими флажками таким образом, что если ни один не проверен, форма возвращает, также мне нужно сохранить то, что было проверено, когда обратная передача формы из-за других недопустимых входов.
$result = mysql_query("SELECT * FROM course") or die(mysql_error()); if ($result) { while ($row = mysql_fetch_array($result)){ if (isset($_POST['courses']) and $_POST['courses'] == $row['cid']) {echo $row['cid'];} print "<input type=\"checkbox\" name=\"courses[]\" value=\"$row[cid]\">$row[cname]\n"; } }
Помощь нужна только по php-кодам. заранее спасибо
Сделайте это, когда флажок появится в HTML на вашей php-странице:
<?php $checked = isset($_POST["checkboxname"]) ? " checked" : '' ; echo "<input type='checkbox' name='checkboxname' value='yes'" . $checked . ">"; ?>
Это сохранит статус флажка после публикации формы.
ОБНОВИТЬ:
Для вашего кода, просто сделайте это так, я думаю:
$result = mysql_query("SELECT * FROM course") or die(mysql_error()); if ($result) { while ($row = mysql_fetch_array($result)) { $checked = ''; /* ERROR: if (isset($_POST['courses']) and $_POST['courses'] == $row['cid']) { */ if (isset($_POST['courses']) { if (in_array($row['cid'], $_POST['courses']) { echo $row['cid']; $checked = " checked"; } } echo "<input type=\"checkbox\" name=\"courses[]\" value=\"$row[cid]\"" . $checked . ">$row['cname']\n"; } }
РЕДАКТИРОВАТЬ: Мне кажется, что состояние тоже должно измениться, как показано в приведенном выше коде.