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 :(得分: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']
,因为Year
是select
的名称。
你遇到的问题是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);
}