2014-03-18 44 views
1

HTML如何保持下拉列表值後提交

<td> 
    <select name="Year" id="Year" value=""> 
     <option value=""></option>    
    </select> 
</td> 

JavaScript來創建列表

for (i = new Date().getFullYear(); i > 1900; i--) 
{ 
    $('#Year').append($('<option />').val(i).html(i)); 
} 

如何防止被提交的年度價值?

+0

你是什麼意思?提交後你可以得到在php文件中的值嗎? –

+0

是啊它被傳遞到一個PHP文件使用GET –

+0

提交後,頁面網址的樣子是什麼? – lshettyl

回答

2

在JS,因爲你有一年的查詢字符串,搶並將其設置爲選擇框。

$('#Year').val(location.search.match(/year=([^&]+)/i)[1]); 
+0

你是男人謝謝 –

1

最明顯的方法是將$ _POST ['Year']傳遞給會話或cookie,或者將其插入到數據庫表中,並通過PDO或MySQLi命令隨時獲取特定結果。

0

在您的PHP中,您將可以訪問發佈的值。在這種情況下,它將在$_POST['Year'],$_GET['Year']$_REQUEST['Year']中,因爲Year是您的select的名稱。

您遇到的問題是select是由javascript構建的,而不是PHP構建的。因爲你需要使用JavaScript來設置它。因此,您需要將PHP中的數據轉換爲javascript - 這對您有意義嗎?

好的。

因此,您需要做的是使用PHP生成對JavaScript函數的調用。當瀏覽器接收並呈現頁面時,它將運行javascript並設置該值。

一個例子可能是:

$year = $_POST['Year']; 
echo("<script>$('#Year').val('$year')<\script>"); 

這將取決於你的PHP如何輸出頁面(您使用的是IE哪些框架等)

然而,目前爲止最簡單的解決方案將是實際上使用PHP構建select - 如果這是一個選項。

0

如果表單通過GET提交給本身,你可以read the value from the querystring並設置列表中的值:

for (var i = new Date().getFullYear(); i > 1900; i--) 
{ 
    $('#Year').append($('<option />').val(i).html(i)); 
} 
if (/[&?]Year=(\d{4})(&|$)/.test(location.search)) { 
    var year = RegExp.$1; 
    $('#Year').val(year); 
}