通过GET提交表单并保留现有的GET参数

时间:2016-08-15 13:54:52

标签: php forms

我们说我有一张我通过GET发送的表格:

<form method="get" action="/search.php?foo=bar&test=1&something=else">
    <input type="text" name="day" placeholder="day"/>
    <input type="text" name="link" placeholder="link"/>
</form>

在提交表单并处理数据(仅包含保存到文件)后,网址将更改为:

  

的search.php天=试验&安培;链接= google.com

我应该怎么做,以便网址变为:

  

/search.php?foo=bar&test=1&something=else&day=test&link=google.com

保留action属性中包含的旧参数。

3 个答案:

答案 0 :(得分:1)

表单操作每次都会更改,并且很难在表单操作中保留旧的GET参数。

但是,您可以使用隐藏字段。

试试这个:

<form method="get" action="/search.php">
    <input type="hidden" name="foo" value="bar"/>      <!-- Add this -->
    <input type="hidden" name="test" value="1"/>        <!-- Add this -->
    <input type="text" name="day" placeholder="day"/>
    <input type="text" name="link" placeholder="link"/>
</form>

答案 1 :(得分:1)

您可以尝试在提交前更改操作,具体取决于您要提交表单的方式。如果您将ID应用于文本以及表单的名称或ID,则可以执行此操作。

HTML:

<form id="frm" method="get" action="/search.php?foo=bar&test=1&something=else">

    <input type="text" name="day" id="day" placeholder="day"/>
    <input type="text" name="link" id="link" placeholder="link"/>
</form>

然后使用JavaScript,您可以运行一个函数并更改表单的操作:

var _form = document.getElementById('frm');
var day = document.getElementById('day').value;
var link = document.getElementById('link').value;

_form.action += '&day=' + day + '&link=' + link;
_form.submit();

答案 2 :(得分:0)

如果你首先从get获取变量,然后想要添加到第二个表单,你可以得到这个并创建隐藏了这些获取值的输入字段

现在,当您在获取网址中提交表单时,您将获得所有您想要的数据

<?php
if($_GET){
    if(isset($_GET['submit1'])){
        $foo = $_GET['foo'];
        $test = $_GET['test'];
        $something =  $_GET['something'];
?>
        <form method="get" action="/search.php">
            <input type="hidden" name="foo" placeholder="foo" value="<?php echo $foo; ?>"/>
            <input type="hidden" name="test" placeholder="test" value="<?php echo $test; ?>"/>
            <input type="hidden" name="something" placeholder="something" value="<?php echo $something; ?>"/>
            <input type="text" name="day" placeholder="day"/>
            <input type="text" name="link" placeholder="link"/>
        </form>
<?php

    }
}

?>