【问题标题】:PHP post doesn't work with a form namePHP 帖子不适用于表单名称
【发布时间】:2011-07-08 15:48:47
【问题描述】:

我有一个 name="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">

【问题讨论】:

  • 那么,问题是什么?
  • 1.使用 id 而不是名称 2. 检查提交按钮而不是表单
  • @AllisonC - 不会为任何元素提交 ID。它们只对 Javascript 有用

标签: php forms post


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:
    <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');
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 正确答案,但是 PHP 代码有语法错误(由于错误的圆括号)看看它。我重新编辑了希望同行接受的代码谢谢。!
      【解决方案4】:

      你能不能不只是寻找:

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

      【讨论】:

        【解决方案5】:

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

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

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

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

        【讨论】:

          【解决方案6】:

          你可以试试

          print_r($_POST)
          

          看看有什么价值

          【讨论】:

            【解决方案7】:

            php 不存储表单的名称。在 $_POST 中只能找到表单元素值。如果您想弄清楚提交的是哪个表单,请传递隐藏字段值或将 var 附加到 action=".." url(并查看 $_GET)或类似内容。

            【讨论】:

              【解决方案8】:

              不,这不起作用,但您可以使用隐藏输入:

              <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 代码将按预期工作。

              【讨论】:

                【解决方案9】:

                试试这个:

                $keyword = $_POST["searchlist"];
                

                【讨论】:

                  猜你喜欢
                  • 2012-05-10
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-12-30
                  • 2016-07-11
                  • 1970-01-01
                  • 2016-02-03
                  相关资源
                  最近更新 更多