$ _POST没有找到"名称"值

时间:2012-01-17 18:29:37

标签: php html post

我正在尝试提交一份表格,它应该发出一个名字,但我知道我搞砸了一些愚蠢的东西,我只是看不到它(昨晚睡了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();
}

我收到了这封发回的错误消息,所以我知道它没有注册名称 - 为什么会这样?

5 个答案:

答案 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();
}