我已经用几个选项创建了html表单(在MyTestFile.php文件中),我想要做的是检查是否收到了post请求。换句话说,当用户从我的组合框中选择某物并按下"Go“按钮时,它会转到同一个页面,发送选择的大小值并回显该大小,然后在设置了大小后,表单就不再可见了。下面是我的表单代码,它实际上不起作用:
if (isset($_POST('submit'))) {
?>
<html>
<h2>Select size:</h2>
<form action="MyTestFile.php" method="POST">
<div>
<select name="SIZE">
<option value="big">big</option>
<option value="medium">medium</option>
<option value="small">small</option>
</select>
<input type="submit" value="Go">
</form>
</html>
<?php
} else {
echo $_POST('submit');
//and do some stuff here
}
主要思想:检查是否已收到带有大小的post请求,如果没有,则显示表单,用户可以在其中选择大小。
发布于 2014-05-20 09:56:55
$_POST
是一个数组,所以必须使用方括号来访问元素,而不是括号。因此,改变这一点:
if (isset($_POST['submit'])) {
// ^ ^ square breackets not ()
其次,你的提交按钮没有名字,所以你的isset()
检查永远不会是真的。给它起个名字:
<input type="submit" name="submit" value="Go">
或者在isset检查中使用SIZE
选择:
if (isset($_POST['SIZE'])) {
最后,您的isset检查需要反转,以便在post值不存在时显示表单:
if (!isset($_POST['SIZE'])) {
// ^ not operator to reverse the check
发布于 2014-05-20 09:57:22
我看得出来你试过了,就这样吧:
只需在isset之前添加一个感叹号,将名称添加到submit按钮中,并将这些括号替换为方括号。
if (!isset($_POST['submit']))
{
?>
<html>
<h2>Select size:</h2>
<form action="MyTestFile.php" method="POST"><div>
<select name="SIZE">
<option value="big">big</option>
<option value="medium">medium</option>
<option value="small">small</option>
</select>
<input type="submit" name="submit" value="Go">
</form>
</html>
<?php
}
else
{
echo $_POST['size'];
//and do some stuff here
}
https://stackoverflow.com/questions/23756509
复制相似问题