如何将GET数据发送到同一页面而不会丢失以前的GET数据作为我页面的URL?

时间:2015-09-01 16:02:44

标签: php forms get submit

我在页面上:index.php?page = 2并且有一个“crteria”和“term”的搜索表单,但每次提交时,都需要我index.php?criteria = x& term = x而不是index.php?page = 2& criteria = x& term = x。所以它忽略了page = 2。另外,我想在同一页面上提交标准和术语。这是代码:

<div id="search">
    <form name="search" action="index.php?page=2" method="get">
        <p>Search by:</p>
        <select name="criteria">
            <option>Name</option>
            <option>Last name</option>
            <option>Project name</option>
        </select>
        <br><input type="text" name="tern" placeholder="term">
        <br><button type="submit">Find`enter code here`</button>
        <hr>
    </form>
</div>

在index.php上,我包含表单所在的页面,如下所示:

if(isset($_GET['page']) && $_GET['page'] == 2){
     include 'modules/search.php';
}

所以,当我在index.php?page = 2时,search.php为我提供了上面可以看到的表单。 我知道,这是一个烂摊子,这是我的第一个项目。提前谢谢。

1 个答案:

答案 0 :(得分:-1)

您只需在表单中添加输入隐藏参数,然后将其从操作属性中删除:

<form name="search" action="index.php" method="get">
    <input type="hidden" name="page" value="2">

如果有多个参数或参数可能不同,您可以将此代码添加到打印表单的php中:

foreach($_GET as $k => $v){
    $k = addslashes($k); //or a DBMS specific escape function
    $v = addslashes($v); //or a DBMS specific escape function
    echo "<input type='hidden' name='$k' value='$v' />";
}