我正在使用PHP来读取数据库中我的表中的条目是否设置为“是”或“否”并自动检查对应的单选按钮:
<?php include 'file.php';
$query = "SELECT * FROM TABLE";
$runquery = odbc_exec($connect,$query);
$status= odbc_result($runquery,"status");
odbc_close($file);
?>
<form>
<div class="formContainer">
<fieldset>
<legend>Campus Alert<span class="tooltip">Turn campus alert on and off.</span></legend>
<?php echo $status; ?>
Yes <input type="radio" name="alertStatus" id="alertStatus" value="yes" <?php if($status== "yes") echo "checked";?>>
No <input type="radio" name="alertStatus" id="alertStatus" value="no" <?php if($status== "no") echo "checked";?>>
</fieldset>
</div>
<?php echo $status; ?>
用于调试,因此我可以确定数据库所说的内容以及表单的反应是否正确。它打印“是”(没有引号)。但是,if语句不会响应。知道为什么会这样做吗?
答案 0 :(得分:3)
您是否尝试过将if语句更改为
<?php if(strtolower(trim($status)) == "yes") echo "checked";?>
答案 1 :(得分:1)
对$status
使用“是/否”不是很好的做法,最好使用int
或boolean
值。
答案 2 :(得分:0)
这是我的测试代码:
<?php //include 'file.php';
//$query = "SELECT * FROM TABLE";
//$runquery = odbc_exec($connect,$query);
//$status= odbc_result($runquery,"status");
//odbc_close($file);
$status='no';
?>
<form>
<div class="formContainer">
<fieldset>
<legend>Campus Alert<span class="tooltip">Turn campus alert on and off.</span></legend>
<?php echo $status; ?>
Yes <input type="radio" name="alertStatu" value="yes" <?php if($status== "yes") echo "checked";?>>
No <input type="radio" name="alertStatu" value="no" <?php if($status== "no") echo "checked";?>>
</fieldset>
</div>
答案 3 :(得分:0)
如果您查看页面来源,您会看到check
实际存在。但是,您有一个重复的ID,浏览器会变得混乱。替换:
Yes <input type="radio" name="alertStatus" id="alertStatus" ....>
No <input type="radio" name="alertStatus" id="alertStatus" .....>
与
Yes <input type="radio" name="alertStatus" id="alertStatus:yes" ....>
No <input type="radio" name="alertStatus" id="alertStatus:no" .....>
它会解决。