单选按钮仅在提交时返回“on”

Posted

技术标签:

【中文标题】单选按钮仅在提交时返回“on”【英文标题】:Radio button only returns "on" when submitted 【发布时间】:2018-08-15 01:11:02 【问题描述】:

我对 php 非常陌生,我正在尝试在字符串中显示选定单选按钮的值。但是我得到的只是“on”而不是与选择相关的值。任何帮助都会很棒!

<form action="Handle_form_PHP.php" method="post">
    <div class= "row">
      <div class ="col-25">
        <label for="student">Student</label>
      </div>
      <div class ="col-75">
        <input type="radio" name="student" value ="student">
      </div>
    </div>

    <div class= "row">
      <div class ="col-25">
        <label for="student">Employee</label>
      </div>
      <div class ="col-75">
        <input type="radio" name="student" value = "employee">
      </div>
    </div>

    <div class="row">
      <input type="submit" value="Submit">
    </div>
</form>

这是我用来打印的 PHP:

// Create a shorthand for the form data:
$fname = $_REQUEST['firstname'];
$lname = $_REQUEST['lastname'];
$address = $_REQUEST['address'];
$state1 = $_REQUEST['state1'];
$state2 = $_REQUEST['state2'];
$student = $_POST['student'];

// Print the submitted information:
echo "<p>Thank you, <b> $student </b>, <b>$fname $lname</b>, for the filling out our survey:<br>
    <p>We will Send you your report at:  <i>$address</i>, <i>$state1</i><i>$state2</i>.</p>\n";

【问题讨论】:

你的表单方法是使用 GET 还是 POST,为什么你只对“学生”使用 $_POST? 这是 POST,老实说,我只是在使用教授给我们的内容,而她的代码在所有这些中都使用了 $_REQUEST。我正在搜索单选按钮可能是我的问题并阅读以使用 POST。但这并没有帮助 经过 30 分钟的搜索,我才弄明白。我把帖子而不是 POST ...... sigh 对不起! 【参考方案1】:

如果您的$_POST['student'] 超全局变量的值为“on”,则该问题与方法区分大小写无关。

单选按钮的默认值为“on”,除非您在单选按钮标记内提供value 属性。

让我证明给你看。转到 [crnge] https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_form_checkbox 然后将以下 sn-p 粘贴到左侧框中,然后运行,然后提交。

<!DOCTYPE html>
<html>
<body>

<form action="/action_page.php" method="get">
  <input type="radio" name="student" checked> Student<br>
  <input type="submit" value="Submit">
</form>
</body>
</html>

这是使用get 的方法提交(注意小写的get 无关紧要。post 的行为方式相同)。看到学生无线电输入中没有value,提交的值为on

如果您在无线电输入中写入value="Red42",您将不再收到on;提交的值为Red42

【讨论】:

@Red42 解决了吗?【参考方案2】:

说方法时使用 POST 不发布:

<form action="Handle_form_PHP.php" method="POST">

不是

<form action="Handle_form_PHP.php" method="post">

为了记录,这本书是不正确的,并且有“帖子”

【讨论】:

方法值区分大小写无关。还有一些你没有注意到的错误。

以上是关于单选按钮仅在提交时返回“on”的主要内容,如果未能解决你的问题,请参考以下文章

表单提交时显示单选按钮选择的名称

如何启用/禁用提交按钮,仅在提供两个条件的情况下:检查输入单选和填充输入文本

仅在选中时读取 GTK 单选按钮信号

为啥jQuery将单选按钮的值返回为“ON”?如何纠正它?

单选按钮将值发送为 Male=on 或 Female=on。我只想将 Male/Female 发送到数据库

基于选定的单选按钮选项,在闪亮的R中单击提交按钮后如何显示图表和数据?