检查基于 php 变量的单选按钮

Posted

技术标签:

【中文标题】检查基于 php 变量的单选按钮【英文标题】:Check radio button based on php variable 【发布时间】:2019-06-29 23:00:12 【问题描述】:

我可以从 php 变量中设置文本字段的值,这样当页面刷新时,文本字段仍会像这样填充:

<td><input type="text" name="user" value="<?php echo ($_REQUEST['user']); ?>" /></td>

但是,我想对具有不同变量 $gender 的单选按钮执行相同的操作。我怎么能这样做?

<td><input type="radio" name="gender" value="male"> Male<br>
                    <input type="radio" name="gender" value="female"> Female<br>
                    <input type="radio" name="gender" value="other"> Other</td>

【问题讨论】:

How to select a radio button by default?的可能重复 查看重复,您可以轻松地在$_REQUEST['gender'] === 'female'上添加有条件的属性 【参考方案1】:

如果您想为多个无线电组自动执行此操作,您可以编写一个函数:

<?php
declare (strict_types=1);

function radio_buttons(string $name, array $values_labels, int $indent = 4)

  $ind = str_repeat(' ', $indent);
  foreach ($values_labels as $value => $label)
  
    $checked = ($_REQUEST[$name] ?? '') === $value ? ' checked' : '';
    echo <<<__EOF__
$ind<input type="radio" id="radio-$name-$value" name="$name" value="$value"$checked><label for="radio-$name-$value">$label</label>

__EOF__;
  


?>
<body>
  <form>
<?php radio_buttons('gender', ['male' => 'Male', 'female' => 'Female', 'other' => 'Other'], 4); ?>
    <button type="submit">submit</button>
  </form>
</body>

【讨论】:

【参考方案2】:

这被称为ternary operator

<?php

'<td><input type="radio" name="gender" value="male" '.($_REQUEST['gender'] == "male" ? 'checked' : '').'> Male<br>
     <input type="radio" name="gender" value="female" '.($_REQUEST['gender'] == "female" ? 'checked' : '').'> Female<br>
     <input type="radio" name="gender" value="other" '.($_REQUEST['gender'] == "other" ? 'checked' : '').'> Other</td>'

?>

【讨论】:

应确保设置$_REQUEST['gender']或生成通知。

以上是关于检查基于 php 变量的单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何通过检查另一个单选按钮来设置选中的单选按钮

使用 jquery 检查禁用的单选按钮

如何只允许检查一个单选按钮,然后能够在 PHP 中处理它?

如何从 PHP 中的单选按钮发送值属性 [关闭]

防止基于选择框选择的单选按钮更改

基于选定的单选按钮在 Tkinter 中启动命令?