簡體   English   中英

提交后如何保持下拉列表值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM