我正在尝试提交一份表格,它应该发出一个名字,但我知道我搞砸了一些愚蠢的东西,我只是看不到它(昨晚睡了3个小时+工作中的新编码项目! =一个聪明的主意)
这是我在一页上的表格:
<form action="add.php" method="POST">
<button type="submit" name="exportcult">Export All</button>
</form>
这是另一页上的代码,用于处理POST:
if (!isset($_POST["name"]) || $_POST["name"] == '') {
header('Location: '.$criteria."?error=data");
die();
}
我收到了这封发回的错误消息,所以我知道它没有注册名称 - 为什么会这样?
答案 0 :(得分:2)
我认为您对表单数据的实际提交方式感到困惑。 “name”是属性,而不是在POST数据中找到的键值。您需要指定该元素的名称,该名称将是POST数据中的键值。您已指定name="exportcult"
,因此在POST数据中,变量将位于$_POST['exportcult']
。但是,由于您没有为按钮指定value
属性,因此该值始终为空字符串。
请记住,在处理提交按钮时,仅用于提交表单的按钮的值将与其余表单数据一起包含在内。试试这个:
<button type="submit" name="exportcult" value="export">Export All</button>
如果使用该特定按钮提交表单,则$_POST['exportcult']
应该等于'export'
。
对于那些不确定的人: buttons do get submitted with the form,但他们仍然必须拥有值属性。
答案 1 :(得分:0)
您的表单不包含除按钮之外的任何字段,因此$_POST
只会包含字段exportcult
。
修改:由于您使用的是<button>
而不是<input>
,因此可能无法进入POSTed数据。
答案 2 :(得分:0)
执行:
if (!isset($_POST["exportcult"]) || $_POST["exportcult"] == '') {
header('Location: '.$criteria."?error=data");
die();
}
当字段名为“exportcult”时,您当前正在检查名为“name”的字段。此外,它应该是<input
,而不是<button
。
答案 3 :(得分:0)
你应该添加
<input type="button" name="exportcult" value="Whatever you want" />
并检查exportcult
上的isset()
而不是name
答案 4 :(得分:0)
准确地使用:
<form action="add.php" method="POST">
<input type="submit" name="name" value="Export All"></form>
if (!$_POST["name"])) {
header('Location: '.$criteria."?error=data");
exit();
}