【问题标题】:Retrieve mysql value from php for radio buttons从 php 中检索单选按钮的 mysql 值
【发布时间】: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。”

标签: php mysql radio-button


【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-20
        • 1970-01-01
        相关资源
        最近更新 更多