PHP在刷新表单时用户选择单选按钮的时间(由于错误检查或其他原因)


php stay of user selection of radio button on refresh of form (due to error checking or other)

这是我的代码

<input type="radio" name="rdNumber" value="100"<?=(isset($_POST['rdNumber']) == 100 ? "checked" : "")?>/>100 
<input type="radio" name="rdNumber" value="1000" checked="checked"/>1000 

它不按要求工作。当表单被提交(在任何错误的情况下),它返回到默认选中的单选按钮,即value = 1000,用户必须再次点击value = 100,而目标是,如果用户选择100单选按钮,他将保持100,而不是移动到默认选中的(即value = 1000)

我错在哪里?同样的if else版本是什么?

remove isset from here:

改变:

<input type="radio" name="rdNumber" value="100" <?=(isset($_POST['rdNumber']) == 100 ? "checked" : "")?>/>100 
<input type="radio" name="rdNumber" value="1000" checked="checked"/>1000 

:

<input type="radio" name="rdNumber" value="100" <?php echo (isset($_POST['rdNumber']) && $_POST['rdNumber'] == 100) ? "checked" : "";?>/>100 
<input type="radio" name="rdNumber" value="1000" <?php echo (isset($_POST['rdNumber']))? (($_POST['rdNumber'] == 1000)? "checked":"" ): "checked"; ?>/>1000 

我认为应该是:

<input type="radio" name="rdNumber" value="100"<?=(isset($_POST['rdNumber']) && $_POST['rdNumber'] == 100 ? "checked='"checked'"" : "")?>/>100

将isset调用的结果与100进行比较,可能不会产生期望的结果。

你的代码有问题:

下面是正确的代码:
<input type="radio" name="rdNumber" value="100" <?php echo ((isset($_POST['rdNumber']) && $_POST['rdNumber'] == 100) ? "checked" : "")?>/>100 
    <input type="radio" name="rdNumber" value="1000" <?php echo  ((isset($_POST['rdNumber']) && $_POST['rdNumber'] == 1000) ? "checked" : "")?>//>1000 

我已经修改过了,现在试试