虽然看起来很简单,但我在通过PHP从MySql数据库检索单选按钮的值时遇到了问题。这是我的第一个学习项目,所以我正在尽我最大的努力
这个问题已经问过了,但我没有找到有用的答案。
PHP代码做了一个简单的“选择*”,所以我检索所有的字段。
这是php代码
<label>Owner: <?php echo $row['Owner']; ?></label></br>
<input type="radio" name="Owner" checked=<?php if($row['Owner'] = "A") { echo "true"; }?> value="A">A
<input type="radio" name="Owner" checked=<?php if($row['Owner'] = "B") { echo "true"; }?> value="B">B</br></br>
我用mysqli_fetch_array()检索这些值。
结果是:
如您所见,标签检索正确的值,单选按钮不。
我已经尝试过用==代替=和用'代替',但我不知道为什么选中复选框“B”,因为所有者的值是A。
此外,如果有比这更好的最佳实践,欢迎您。
HTML
属性checked
不应获得值,它的存在表明单选按钮已被选中。这样做:
<label>Owner: <?php echo $row['Owner']; ?></label></br>
<input type="radio" name="Owner" <?php if($row['Owner']=="A") {echo "checked"}?> value="A">A
<input type="radio" name="Owner" <?php if($row['Owner']=="B") {echo "checked"}?> value="B">B
或者使用更紧凑的短回声标签
<label>Owner: <?=$row['Owner']?></label></br>
<input type="radio" name="Owner" <?=$row['Owner']=="A" ? "checked" : ""?> value="A">A
<input type="radio" name="Owner" <?=$row['Owner']=="B" ? "checked" : ""?> value="B">B
请注意,您需要双等号进行比较。
不要尝试此代码,而是使用=
<input type="radio" name="Owner" <?php if($row['Owner'] == "A") { echo "checked"; }?> value="A">
$gender=$row['gender'];
<input type="radio" name="gender" <?php if($gender=="Male"){?> checked="true" <?php } ?> />Male
<input type="radio" name="gender" <?php if($gender=="Female"){?> checked="true" <?php } ?>/>Female