在表单提交上添加额外的GET变量

时间:2016-01-26 17:27:51

标签: javascript php

我有两个"表格"每个包含一个下拉列表。我使用javascript onchange="this.form.submit()"提交这两个表单我需要在第二个表单提交时保留一个变量(如果已设置)。我有提交到同一页面的表单,目前它没有通过第一个变量。

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="GET">
    <select name="show" style="width:100%;" onchange="this.form.submit()">
        <option value="cond" <?php if(isset($_GET['show'])&&$_GET['show']=='cond'||!isset($_GET['show'])) { echo 'selected'; } ?>>Condensed</option>
        <option value="full" <?php if(isset($_GET['show'])&&$_GET['show']=='full') { echo 'selected'; } ?>>Show All</option>
    </select>
</form>


<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="GET">
    <select name="sort_slsp" style="width:100%;" onchange="this.form.submit()">
    <option value="">--Choose Salesperson--</option>
            <?php
                $get_all_slsp = mysqli_query($lmcon, "SELECT * FROM slsps ORDER BY slsp_name");
                while($row = mysqli_fetch_array($get_all_slsp)) {
                    echo '<option value="' . $row['slsp_id'] . '">' . $row['slsp_name'] . '</option>';
                }
            ?>
    </select>
</form>

1 个答案:

答案 0 :(得分:1)

当表单methodGET时,浏览器会使用 new action属性指定的网址中任何可能存在的查询字符串部分>他们从表单字段构造的查询字符串。

这里最简单的解决方案是将您想要提交的其他值作为隐藏输入字段添加到表单中:

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

看到你的第一个select字段的名称为show,这可能就是你要在这里传递的值(?),你就这样填写了这个值属性,

value="<?php echo htmlspecialchars($_GET['show']); ?>"

(首先检查一下该参数是否存在,如果没有,可以输出一个默认值,我会留给你。)