我的网站上有一个表单,我想更新用户的信息(编辑个人资料),用户的一些信息与用户可能患有的疾病有关。 我有复选框,以便选择任何疾病,但我如何根据我的数据库表中的数据检查复选框。 复选框的代码如下......
<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; ?>
我的数据库表被命名为患者,看起来像这样
我的复选框看起来像这样......
我的更新代码......
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>";
}
}
答案 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" ... >"
就是这样。