从 php 中检索单选按钮的 mysql 值

Posted

技术标签:

【中文标题】从 php 中检索单选按钮的 mysql 值【英文标题】:Retrieve mysql value from php for radio buttons 【发布时间】:2016-02-08 10:27:12 【问题描述】:

尽管看起来微不足道,但我在通过 phpmysql 数据库中检索单选按钮的值时遇到了问题。这是我的第一个学习项目,所以我正在尽力而为

问题已被提出,但我没有找到有用的答案。

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 &lt;?= .. ?&gt; 和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。我将谁先标记为答案,因为那个人的答案也是正确的。 &lt;input type="radio" name="Owner" value="A" checked &gt;【参考方案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 值的主要内容,如果未能解决你的问题,请参考以下文章

如何以在 php 中作为字符串回显的形式填充单选按钮?

PHP - 检索与单选按钮对应的所有数据

如何控制单选按钮?从数据库、PHP、MYSQL 回显的数据

Axure:切换单选按扭,控制界面显示不同内容

使用 PHP 和 MySQL 进行自我发布的动态单选按钮

如何在 jQuery Mobile 中刷新单选按钮的样式和布局?