【问题标题】:form action to a url with attributes对具有属性的 url 形成操作
【发布时间】:2012-09-20 12:14:13
【问题描述】:

我有一个名称属性为 q 的搜索字段,单击提交按钮后,我希望表单转到同一页面(即 index.php),因此我将表单的操作设置为:

'index.php?a=nl&b=search'.

我希望导航到的 url 是这样的(所以 action-url + 字段的名称):

'index.php?a=nl&b=search&q=search-term'. 

然而,点击后页面导航到

'index.php?q=search-term'

有没有办法解决这个问题?

【问题讨论】:

    标签: php html


    【解决方案1】:

    不要在表单操作中使用a=nl&b=search,只需在表单中添加两个额外的隐藏输入:

    <input type='hidden' name='a' value='nl' />
    <input type='hidden' name='b' value='search' />
    

    【讨论】:

      【解决方案2】:

      将表单方法设为 GET 并将字段添加为隐藏字段。

      看起来您的表单只有q 输入字段(以及一个没有名称属性的提交按钮)。在提交后将要附加到 url 的内容添加为隐藏输入 - 例如:

      <form method="get" action="yoururl.com?a=nl&b=search">
      <input type="hidden" name="a" value="<?php echo isset($_GET['a']) ? $_GET['a'] : ''; ?>"/>
      <input type="hidden" name="b" value="<?php echo isset($_GET['b']) ? $_GET['b'] : ''; ?>"/>
      

      .....表格的其余部分...

      【讨论】:

        【解决方案3】:

        添加 a 和 b 在表单中具有所需值的隐藏字段。

        【讨论】:

          【解决方案4】:

          这样的表格应该可以解决问题:

          <form action="" method="get">
              <input name="q" type="text"/>
              <input name="a" type="hidden" value="nl"/>
              <input name="b" type="hidden" value="search"/>
              <input type="submit" value="Submit"/>
          </form>
          

          由于动作会转到同一页面,因此您无需指定。

          【讨论】:

            【解决方案5】:

            使用&lt;form&gt; 中的GET 方法,您的表单应如下所示:

            <form method="get" action="index.php">
                <input type="hidden" value="nl" name="a">
                <input type="hidden" value="search" name="b">
                <input type="text" name="q">
                <input type="submit" value="submit">
            </form>
            

            【讨论】:

              【解决方案6】:

              所以你说你的表格如下:

              <form method="POST" action='index.php?a=nl&b=search'>
              
               <input type="text" name="q">
              
              </form>
              

              在这种情况下,您可以访问 PHP 中的三个变量,如下所示:

              $_GET['a']
              $_GET['b']
              $_POST['q']
              

              因为操作中的变量作为 GET 传递,而表单内的字段作为 POST 传递。

              另一种获取 var 的便捷方式,无需注意它们是 GET 还是 POST,只需通过 $_REQUEST 数组访问它们,如下所示:

              $_REQUEST['a']
              $_REQUEST['b']
              $_REQUEST['q']
              

              【讨论】:

                猜你喜欢
                • 2021-06-08
                • 1970-01-01
                • 2023-03-15
                • 1970-01-01
                • 1970-01-01
                • 2021-12-30
                • 1970-01-01
                • 2012-10-02
                • 2017-07-13
                相关资源
                最近更新 更多