验证并保留动态复选框的状态

时间:2012-03-27 10:29:00

标签: php cakephp

我是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 :(得分:0)

在php页面上的HTML中出现复选框时执行此操作:

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

编辑:我认为,条件也需要改变,正如我在上面的代码中所示。