2015-09-06 102 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)