根据数据库中的数据检查复选框

时间:2015-04-18 14:22:15

标签: php html checkbox

我的网站上有一个表单,我想更新用户的信息(编辑个人资料),用户的一些信息与用户可能患有的疾病有关。 我有复选框,以便选择任何疾病,但我如何根据我的数据库表中的数据检查复选框。 复选框的代码如下......

<label id="Disease">Your Disease(s):</label><br />
    <!--emfanizei tis epiloges gia ta diseases me basi auta p exoume sti basi mas -->
    <?php
  $sql = "SELECT name FROM disease";
  $query_resource = mysql_query($sql);
  while( $name = mysql_fetch_assoc($query_resource) ):
?>
    <span><?php echo $name['name']; ?></span>
    <input type="checkbox" name="disease[]" value="<?php echo $name['name']; ?>" /><br />

<?php endwhile; ?>

我的数据库表被命名为患者,看起来像这样 enter image description here

我的复选框看起来像这样...... enter image description here

我的更新代码......

if(isset($_POST['username'])){

            $fname = mysql_real_escape_string($_POST["fname"]);
            $lname = mysql_real_escape_string($_POST["lname"]);            
            $email = mysql_real_escape_string($_POST["email"]);
            $password = mysql_real_escape_string($_POST["password"]);
            $age = ($_POST["age"]);
            $disease = implode(",",$_POST["disease"]);         

            $query="UPDATE patient
                    SET fname = '$fname', lname = '$lname', email = '$email', password = '$password', age='$age', disease='$disease'
                    WHERE username='$username'";

            mysql_query($query)or die(mysql_error());
            if(mysql_affected_rows()>=0){
                echo "<p>($username) Record Updated<p>";
            }else{
                echo "<p>($username) Not Updated<p>";
            }
        }

3 个答案:

答案 0 :(得分:1)

<input type="checkbox" name="disease[]" value="<?php echo $name['name']; ?>"<?php if (in_array($name['name'], split($disease, ','))) echo ' checked'; ?> />

对于XHTML,您可能需要写:echo 'checked="checked"';

答案 1 :(得分:0)

如果要在默认情况下选中复选框,则需要添加属性:

checked="checked" 

浏览疾病列表,如果他在数据库中有,请将该属性添加到您的输入中。

答案 2 :(得分:0)

在“while”语句中使用简单的“if”,您可以检查疾病是否在您的列表中。如果有,您必须在html代码中插入关键字“checked”。 伪代码应该是

get all possible diseases
get all patient's diseases
while disease=over all diseases
   if(disease is in the patient's diseases list)
      echo "<input type="checkbox" ... checked >"
   else
      echo "<input type="checkbox" ... >"

就是这样。