从html表单发布后未设置的变量

时间:2017-06-22 23:30:29

标签: php html5 forms

我正在练习从表单发送数据并在不同的PHP脚本中回显该数据。但是,我的输入没有发布到我指向我的表单的PHP脚本中。

Hub.php

<!Doctype html>
<html>
<head>
    <title>Hub</title>
</head>
<body>
<form action = "test.php" method = "post">
    <input type ="radio" value ="assignment_2" name ="choice" >Assignment 2</br>
    <input type ="submit" >
</form>
</body>
</html>

test.php

<!Doctype html>
<html>
<body>
<?php
    echo $_POST["choice"];
    ?>
</body>
</html>

点击提交按钮后,我被重定向到test.php页面,但是它表示&#34;未定义索引:选择&#34;。我查看了有关此事的所有其他帖子,但没有一个答案似乎对我有用。有人可以让我知道我做错了什么吗?我是php新手并使用表单数据,所以任何帮助都将不胜感激。

谢谢。

好的,所以在尝试了@Alfredo EM建议的各种事情后,get方法正常工作,当我运行var_dump($_GET);

时,我会给出以下输出
array(2) { ["choice"]=> string(12) "assignment_2" ["textfield"]=> string(7) "my text" }

post方法仍无效。

3 个答案:

答案 0 :(得分:0)

单选按钮如果未选中则不发送Post数据,因此如果您尝试访问它,则会出现Undefined index错误。您可以使用此代码来测试是否已选中:

if(isset($_POST["choice"])){
    echo $_POST["choice"];  
} else{
    echo "Not checked";
}

答案 1 :(得分:0)

您应该在提交前验证单选按钮。

HTML:

<form method="post" action="test.php">
  <input type="radio" name="choice" value="assignment_2"/>Assignment 2</br>
  <input type="submit" name="submit" value="submit"/>
</form>

PHP:

if (isset($_POST['submit'])) {
  if (isset($_POST['choice'])) {
    $choice = $_POST['choice'];
    echo $choice;
  } else {
    echo 'No Data selected';
  }
}

答案 2 :(得分:0)

我确实记得我之前看过这个问题,如果您正在测试localhost上的脚本,请看一下。希望这可以帮到你。

https://intellij-support.jetbrains.com/hc/en-us/community/posts/207255485-No-POST-values-caught