我正在练习从表单发送数据并在不同的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方法仍无效。
答案 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