PHP 我在 if 语句中签入以重新填充选中的按钮不起作用


PHP my checking in the if statement to re-populate a checked button is not working

我最近发现了如何重新填充选中的单选按钮......但我不确定为什么现在跳跃以重新填充其中的最后一个,即使选中的是第一个。我找不到我的错误,我希望有些人可以。非常感谢..

 <tr>
        <td class="right text">Title:</td>
        <td><input type="radio" name="sex" value="Mr." <?php if (isset($_POST['sex']) == "Mr.") echo "checked"; ?>>Mr.</td></tr>
    <tr><td></td><td><input type="radio" name="sex" value="Mrs." <?php if (isset($_POST['sex']) == "Mrs.") echo "checked"; ?>>Mrs.</td></tr>
    <tr><td></td><td><input type="radio" name="sex" value="Ms." <?php if (isset($_POST['sex']) == "Ms.") echo "checked"; ?>>Ms.</td></tr>

更改所有三个单选按钮。

<?php if ( isset($_POST['sex']) && $_POST['sex'] == "Mr.") echo "checked"; ?>

你的测试是错误的。您正在测试是否设置了 POST 字段"。然后你说"这等同于这个值吗?所以你拿一个布尔值并将其与字符串进行比较。因此,您的任何测试都不起作用。

执行此操作的最佳方法是将测试移动到数组中。这意味着更少的测试和更干净的HTML

<?php
$data = array('Mr.' => null, 'Mrs.' => null, 'Ms.' => null);
if(isset($_POST['sex'])) $data[$_POST['sex']] = ' checked="checked"';
?>
<td><input type="radio" name="sex" value="Mr."<?php echo $data['Mr.'] ?> />Mr.</td></tr>
<tr><td></td><td><input type="radio" name="sex" value="Mrs."<?php echo $data['Mrs.'] ?> />Mrs.</td></tr>
<tr><td></td><td><input type="radio" name="sex" value="Ms."<?php echo $data['Ms.'] ?> />Ms.</td></tr>