从单选按钮的 php 中检索 mysql 值
Retrieve mysql value from php for radio buttons
尽管看起来微不足道,但我在通过 PHP 从 MySql 数据库中检索单选按钮的值时遇到了问题。这是我的第一个学习项目,所以我会尽力
问题已经被问过,但我没有找到有用的答案。
php 代码做了一个简单的 "Select *" 所以我检索了所有字段。
这是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" 被选中,因为 Owner 值为 A.
此外,如果有任何比这更好的最佳实践,欢迎您。
不要尝试此代码 =
,而是使用 ==
<input type="radio" name="Owner" <?php if($row['Owner'] == "A") { echo "checked"; }?> value="A">
HTML
attribute 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
或者使用更紧凑的 short echo tag <?= .. ?>
and ternary operator:
<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
请注意,您需要使用双等号进行比较。
我尝试了@trincot 给出的答案,但它给我错误,所以我做了一些小改动来改进答案
<input type="radio" name="Owner" <?php if($row['Owner']=="A") {?> <?php echo "checked";?> <?php }?> value="A">A
<input type="radio" name="Owner" <?php if($row['Owner']=="B") {?> <?php echo "checked";?> <?php }?> value="B">B
$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
$owner=$row['owner'];
$owners= ['A'=>'', 'B'=> ''];
$owners[$owner] = 'checked';
<input type="radio" name="Owner" <?php echo $owners['A']?> value="A">A
<input type="radio" name="Owner" <?php echo $owners['B']?> value="B">B
如果您在数据库中有很多值,我认为它简单易行且非常有用。
尽管看起来微不足道,但我在通过 PHP 从 MySql 数据库中检索单选按钮的值时遇到了问题。这是我的第一个学习项目,所以我会尽力
问题已经被问过,但我没有找到有用的答案。
php 代码做了一个简单的 "Select *" 所以我检索了所有字段。
这是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" 被选中,因为 Owner 值为 A.
此外,如果有任何比这更好的最佳实践,欢迎您。
不要尝试此代码 =
,而是使用 ==
<input type="radio" name="Owner" <?php if($row['Owner'] == "A") { echo "checked"; }?> value="A">
HTML
attribute 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
或者使用更紧凑的 short echo tag <?= .. ?>
and ternary operator:
<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
请注意,您需要使用双等号进行比较。
我尝试了@trincot 给出的答案,但它给我错误,所以我做了一些小改动来改进答案
<input type="radio" name="Owner" <?php if($row['Owner']=="A") {?> <?php echo "checked";?> <?php }?> value="A">A
<input type="radio" name="Owner" <?php if($row['Owner']=="B") {?> <?php echo "checked";?> <?php }?> value="B">B
$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
$owner=$row['owner'];
$owners= ['A'=>'', 'B'=> ''];
$owners[$owner] = 'checked';
<input type="radio" name="Owner" <?php echo $owners['A']?> value="A">A
<input type="radio" name="Owner" <?php echo $owners['B']?> value="B">B
如果您在数据库中有很多值,我认为它简单易行且非常有用。