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

时间:2014-03-18 17:49:53

标签: javascript jquery html

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));
}

如何保留提交年份的价值?

4 个答案:

答案 0 :(得分:2)

在JS中,由于你在查询字符串中有年份,所以抓住它并将其设置为选择框。

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

答案 1 :(得分:1)

最明显的方法是将$ _POST ['Year']传递给会话或cookie或将其插入数据库表,并通过PDO或MySQLi命令随时获取特定结果。

答案 2 :(得分:0)

在PHP中,您可以访问发布的值。在这种情况下,它将位于$_POST['Year']$_GET['Year']$_REQUEST['Year'],因为Yearselect的名称。

你遇到的问题是select是由javascript而不是PHP构建的。因此,你需要使用javascript设置它。因此,您需要将PHP中的数据转换为javascript - 这对您有意义吗?

行。

所以你需要做的是使用PHP生成对javascript函数的调用。当浏览器接收并呈现页面时,它将运行javascript并设置值。

一个例子可能是:

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

这将取决于您的PHP如何输出页面(I.E.您正在使用的框架等)

但是,到目前为止,最简单的解决方案实际上是在PHP中构建select - 如果这是一个选项。

答案 3 :(得分: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);
}