PHP帖子不适用于表单名称

时间:2011-07-08 15:48:48

标签: php forms post

我有一个名为=“search”的表单,我希望这个脚本能够正常工作,但它似乎没有用。

if (isset($_POST['search']))
    include_once('layouts/layout_2.php');

这是我的标记

<form name="search" action="" method="post">
<p>I am looking for</p>
<input type="text" value="Any keyword" name="searchlist">
<input type="submit" value="Find Job">

9 个答案:

答案 0 :(得分:5)

表单的名称未在$_POST变量中提交。您可以检查提交按钮的名称是否已发布。

<form>
    ...
    <input type="submit" name="submit" value="Submit" />
</form>

<?php
if($_POST['submit']) {
    //Code here
}
?>

此方法不要求您添加额外的隐藏变量,以检查表单是否已提交。此外,您不必检查请求方法,也不必检查所有其他变量。如果单击了提交按钮,则表单已发布。

答案 1 :(得分:3)

表单的名称不会作为表单提交的一部分发送。如果要检测表单是否已提交,请执行以下操作:

if ($_SERVER['REQUEST_METHOD'] == 'POST') && (isset($_POST['searchlist']) && (!empty($_POST['searchlist'])) {
   ...
}

答案 2 :(得分:3)

你能不能只找:

if(isset($_POST['searchlist'])) {
  include_once('layouts/layout_2.php');
}

答案 3 :(得分:3)

<form name="search" action="" method="post">
<input type="hidden" name="search" value="1"/>
<p>I am looking for</p>
<input type="text" value="Any keyword" name="searchlist">
<input type="submit" value="Find Job">

PHP

if($_POST['search'] == 1) include_once('layouts/layout_2.php');

答案 4 :(得分:1)

表单提交中出现的唯一数据是成功表单控件的值(可能还有在action属性中编码的数据,但不要这样做)。

如果要包含任意额外数据,请使用隐藏输入。

<input type="hidden" name="foo" value="bar">

永远不要为表单使用name属性。这是一种识别客户端脚本的表单的方法,该脚本在十多年前已被id属性取代。

答案 5 :(得分:1)

你可以尝试

print_r($_POST)

看看值是什么

答案 6 :(得分:0)

php不存储表单的名称。 $ _POST中只找到表单元素值。如果你想弄清楚它提交的是哪种形式,可以传递一个隐藏的字段值,或者将一个var附加到action =“..”url(并查看$ _GET)或类似内容。

答案 7 :(得分:0)

不行,但是你可以使用隐藏的输入:

<form  action="" method="post">
<input type="hidden" name="search" value="1" />
<p>I am looking for</p>
<input type="text" value="Any keyword" name="searchlist">
<input type="submit" value="Find Job">

然后您的PHP代码将按预期工作。

答案 8 :(得分:0)

试试这个:

$keyword = $_POST["searchlist"];