Проверка и сохранение состояния динамических флажков

Я новичок в 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"; } } 

РЕДАКТИРОВАТЬ: Мне кажется, что состояние тоже должно измениться, как показано в приведенном выше коде.