表单get方法在表单提交后删除url参数

r2g*_*get 0 php forms get

我正在为我的脚本制作自定义数据过滤器.除1个过滤器外,一切正常.

我可以选择查看今天的所有数据,如果你去my-url.file.php?view = today

它知道它必须获取今天的所有数据.但是在日期过滤器旁边,我还有其他一些过滤器.哪个可以通过GET(表格)设置

一切正常,但当我正在查看my-url.file.php?view=today并设置(例如)排序过滤器时,它会重定向到?p=5&limit=3&ordersort=orderdesc但应该重定向到?p=5&**view=today**&limit=3&sortby=orderdesc

所以我想..好吧让我通过var设置动作并检查页面今天是否是如此查看...我将把视图放在网址中,否则不会..但它仍会删除此变量

什么是最好的方法来解决这个问题?

<?php
if (isset($_GET['view']) && $_GET['view'] === 'today')
    {
        $action = "adminOrders.php?view=today";
    }
else 
    {
        $action = "adminOrders.php";
    }
?>
<form name="ordermanage" method="get" action="<?php echo $action; ?>">  
  <label>Show &nbsp;
    <select id="form-field-select-1" class="form-control" style="display: inline-block !important;width:100px !important" id="limit" name="limit" onchange="document.ordermanage.submit();">
      <option value="50"  <?php echo (Input::get('limit') == 50) ? 'selected="selected"' : ''; ?>>50</option>
      <option value="100" <?php echo (Input::get('limit') == 100) ? 'selected="selected"' : ''; ?>>100</option>
      <option value="200" <?php echo (Input::get('limit') == 200) ? 'selected="selected"' : ''; ?>>200</option>
      <option value="300" <?php echo (Input::get('limit') == 300) ? 'selected="selected"' : ''; ?>>300</option>
    </select> &nbsp;orders&nbsp;&nbsp;&nbsp;&nbsp;</label>

  <label>Sort by &nbsp;
    <select id="form-field-select-1" class="form-control" style="display: inline-block !important;width:200px !important" id="ordersort" name="ordersort" onchange="document.ordermanage.submit();">
      <option value="orderdesc"  <?php echo ($selectBoxVarSort === "orderdesc") ? 'selected="selected"' : ''; ?>>Ordernr high to low</option>
      <option value="orderasc" <?php echo ($selectBoxVarSort === "orderasc") ? 'selected="selected"' : ''; ?>>Ordernr low to high</option>
      <option value="pricedesc" <?php echo ($selectBoxVarSort === "pricedesc") ? 'selected="selected"' : ''; ?>>Price high to low</option>
      <option value="priceasc" <?php echo ($selectBoxVarSort === "priceasc") ? 'selected="selected"' : ''; ?>>Price low to high</option>
    </select>
  </label>
</form>
Run Code Online (Sandbox Code Playgroud)

aki*_*irk 6

如果指定表单方法GET,则将覆盖操作中的参数.您可以使用隐藏的表单字段解决此问题:

<form name="ordermanage" method="get" action="adminOrders.php">
<?php
if (isset($_GET['view']) && $_GET['view'] === 'today') {
    ?><input type="hidden" name="view" value="today" /><?php
}
?>
<label>Show &nbsp;
Run Code Online (Sandbox Code Playgroud)