Проверка и сохранение состояния динамических флажков - PullRequest
2 голосов
/ 27 марта 2012

Я новичок в 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.Заранее спасибо

1 Ответ

0 голосов
/ 27 марта 2012

Сделайте это там, где в HTML на вашей странице php появляется флажок:

<?php

   $checked = isset($_POST["checkboxname"]) ? " checked" : '' ;
   echo "<input type='checkbox' name='checkboxname' value='yes'" . $checked . ">";

?>

Это сохранит состояние флажка после публикации формы.

UPDATE:

Для вашего кода, просто сделайте это так, я думаю:

$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"; 
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...