[英]How to keep dropdown list value after submit
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));
}
我如何保留提交年份的價值?
在JS中,因為你在查詢字符串中有年份,所以抓住它並將其設置為選擇框。
$('#Year').val(location.search.match(/year=([^&]+)/i)[1]);
最明顯的方法是將$ _POST ['Year']傳遞給會話或cookie或將其插入數據庫表,並通過PDO或MySQLi命令隨時獲取特定結果。
在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
- 如果這是一個選項。
如果表單通過GET提交給自己,您可以從查詢字符串中讀取值並在列表中設置值:
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.