2015-09-06 105 views
-1

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

这里是我的代码:

<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>

+1

您可以将值发布到下一个表单,或者您可以将此值传递给此 –

+0

thx,但我不知道如何执行此操作。 –

+0

你可以发布所有的代码吗?你所拥有的仅仅是形式,没有其他的东西,它并没有显示你是如何接收表格值和调用表单2的。显示你已经做出了一些努力来解决问题。 – crafter

回答

1

您可以按提交后访问变量.. Therfore你必须改变<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"。随着GET参数你也可以做一个神奇的东西一样

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

http://www.example.com/index.php?from=20150906&to=20150907之后,你可以通过访问值。 所以你通过URL获得变量的值..

欲了解更多信息,请参阅: http://php.net/manual/en/reserved.variables.php

我希望我可以帮你......

+1

小心括号Markus。我不得不编辑你的答案。你有相当多的失踪,并会抛出/导致解析错误 –

+0

谢谢你! – Markus

+0

不客气Markus。 –

1

在你的情况,因为你正在使用POST,您可以访问值

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

由于用户已经马库斯说,你应该将submit-button名称属性更改为一个不言自明的名字,以保持它容易MAINT在代码和检查,如果这个按钮被按下。

然后你必须通过你的形式value -attribute来设置。

<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> 

请记住,通过unsanitized数据永远不安全。所以你应该考虑清理用户输入。 (例如给定的格式,如YYYY-MM-DD)