保持输入字段在下一页

时间:2015-09-06 14:26:03

标签: javascript php html

我有来自数据库的条目的日期过滤器。在第一页上,我有一个所有条目的列表。在第二个我有相同的过滤器,几乎按日期列表过滤。 所以我想保留第一页的过滤器值。

这是我的代码:



<form action="filter.php" method="post">
 <label>From</label><input name="from" required="true" type="date"/>
<label>To:</label> <input  name="to" required="true" type="date"/>
<input name="" type="submit"  value="Search" />
</form>
<table>
...
...
...
</table>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

您可以在按提交后访问该变量。 因此,您必须将<input name="" type="submit" value="Search" />更改为<input name="submit" type="submit" value="Search" />

<?php

   if(isset($_POST['submit'])) {
      $from = $_POST['from'];
      $to = $_POST['to'];
   }

?>

您还可以将变量存储到会话中,以便从任何地方访问它。

<?php
   session_start();

   if(isset($_POST['submit'])) {
      $from = $_POST['from'];
      $to = $_POST['to'];
      $_SESSION['from'] = $from;
      $_SESSION['to'] = $to;
   }
?>

第三个选项是,将表单元素的方法设置为method="GET"。之后,您可以通过以下方式访问这些值:

<?php
   if(isset($_GET['submit'])) {
      $from = $_GET['from'];
      $to = $_GET['to'];
   }
?>

使用get参数,您还可以执行以下操作:http://www.example.com/index.php?from=20150906&to=20150907。 所以你通过URL获得变量的值..

有关更多信息,请参阅: http://php.net/manual/en/reserved.variables.php

我希望我能帮到你......

答案 1 :(得分:1)

在您的情况下,由于您使用的是POST,因此您可以访问值

if(isset($_POST['submit']])) {
    $from = $_POST['from'];
    $to   = $_POST['to'];
}

正如用户Markus已经说过的那样,您应该将submit-button名称属性更改为一个不言自明的名称,以便在维护代码和检查时(如果按下此按钮)。

然后,您必须通过表单中的value - 属性进行设置。

 <form action="filter.php" method="post">
     <label>From</label><input name="from" value="<?php echo $from; ?> required="true" type="date"/>
     <label>To:</label> <input name="to" value="<?php echo $from; ?>required="true" type="date"/>
     <input name="submit" type="submit"  value="Search" />
 </form>

请记住,传递未经过抽取的数据永远不会安全。所以你应该考虑清理用户输入。 (例如像YYYY-MM-DD这样的给定格式)