嗨,大家好我想使用PHP脚本检查并取消选中我的表单的复选框。 在数据库中我使用数据类型TinyInt存储0或1。 我正在使用以下代码。
<tr>
<td><div id="formEditProfileLblAEmail">Allow Email</div>
</td><td><input type="checkbox" checked="<?php
$sql = "Select firstname,middlename,lastname,nickname,require_email,allow_scores from user_info where username = '".$_SESSION['username']."'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
$row = mysql_fetch_array($result);
if($count>0)
{
if($row['require_email']=='1')
{
echo 'checked';
}
else
{
echo 'unchecked';
}
}
else
echo 'unchecked';
?>" name="formEditProfileChkAEmail" id="formEditProfileChkAEmail" /> </td></tr>
但我的复选框总是会被检查我是否在数据库中有0或1。
答案 0 :(得分:5)
如果只是在内部添加
,请不要使用else部分删除if
之外的checked="
<input type="checkbox"
<?php if($row['require_email']=='1') {
echo 'checked="checked"';
}
与您希望取消选中的复选框无关。
答案 1 :(得分:2)
根据HTML specs,checked
属性是布尔值。也就是说,如果您没有将其设置为暗示为false的值,则用户代理将可能确定它是真的,即已选中。从历史上看,此属性的 presence 表示应该选中该框,因此这可能是默认值。
您可以通过查看来源对此进行测试 - 我怀疑您将使用checked="unchecked"
呈现您的页面,这仍然会将该框呈现为已选中。
您可以通过在PHP源代码中将“unchecked”更改为“false”来解决此问题,以便获得您正在寻找的正确布尔行为。
编辑:规范进一步继续定义boolean attributes can only take one legal value(暗示true
) - 所以要生成正确的HTML,并将此属性设置为false
,这是执行此操作的唯一方法是完全省略属性。 Shakti Singh's answer描述了如何实现这一目标(并获得了+1)。
答案 2 :(得分:1)
答案 3 :(得分:0)
是否正在打印文字?试试checked="checked"
。