从 php 中检索单选按钮的 mysql 值
Posted
技术标签:
【中文标题】从 php 中检索单选按钮的 mysql 值【英文标题】:Retrieve mysql value from php for radio buttons 【发布时间】:2016-02-08 10:27:12 【问题描述】:尽管看起来微不足道,但我在通过 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”,因为 Owner 的值为 A。
另外,如果有任何比这更好的最佳实践,欢迎您。
【问题讨论】:
你很清楚,但也许我不是。我明确表示:“我已经尝试用 == 代替 = 并用 ' 代替”,但我不知道为什么选中复选框“B”,因为 Owner 的值是 A。” 【参考方案1】: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 <?= .. ?>
和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
请注意,您需要使用双等号进行比较。
【讨论】:
【参考方案2】:试试这个代码不是=
,而是使用==
<input type="radio" name="Owner" <?php if($row['Owner'] == "A") echo "checked"; ?> value="A">
【讨论】:
@LiquidCore - 他还使用“checked”而不是“true”来标记已检查的内容。 是的,结果我不知道如何正确使用checked。我将谁先标记为答案,因为那个人的答案也是正确的。<input type="radio" name="Owner" value="A" checked >
【参考方案3】:
$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
【讨论】:
这是一个纯代码答案(在 SO 上应尽可能避免,因为它在教育未来读者方面做得很差)。无线电输入没有 OP 的 sn-p 使用的值属性。如果您打算为已经有教育和工作解决方案的问题写一个新答案,您需要带来对页面有价值的新信息或新技术......否则,这只是页面膨胀它的读者可以不用。【参考方案4】:$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
如果您在 DB 中有很多值,我认为这很容易和简单并且非常有用。
【讨论】:
【参考方案5】:我尝试了@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
【讨论】:
以上是关于从 php 中检索单选按钮的 mysql 值的主要内容,如果未能解决你的问题,请参考以下文章