在我的页面上,我显示了许多结果。我希望访问者能够根据年份对结果应用过滤器。因此,如果用户选择过滤器" 2014"只显示2014年的结果。
到目前为止,我已经为SQL创建了这个:
$sql="SELECT * FROM $tbl_name";
if ($_GET['year'] == '2013')
{
$sql .= " AND year=2013 ORDER BY date DESC";
}
elseif ($_GET['year'] == '2014')
{
$sql .= " AND year=2014 ORDER BY date DESC";
}
过滤器由<a href>
标记触发,如下所示:
<select onChange="window.open(this.options[this.selectedIndex].value,'_self')">
<option value="page.php?year=2013">2013</option>
<option value="page.php?year=2014">2014</option>
</select>
基本上,onChange
使用_GET
方法重新加载页面,设置年份。
这一切都很好。除了一件事。我需要每年手动更改代码,以便使用当前年份更新选项值。所以,一旦新的一年开始,我就会自己更新代码。有没有办法自动执行此操作?
更新
我有这个脚本创建选项标记,从2012年开始到当年结束:
var filteryear = '2012';
var filtertill = new Date().getFullYear();
var foptions = "";
for(var fy=filteryear; fy<=filtertill; fy++){
foptions += "<option value='urenregistratie_all.php?jaar="+ fy +"'>"+ fy +"</option>";
}
document.getElementById("filteryear").innerHTML = foptions;
所以问题不在<option>
部分,MySQL
部分应随之增加......
答案 0 :(得分:2)
尝试使用类似的东西:
<强> HTML 强>
<select onChange="window.open(this.options[this.selectedIndex].value,'_self')">
<?php
$year = 2013;
while($year <= date('Y')){
echo '<option value="page.php?year='.$year.'">'.$year.'</option>';
$year++;
}
?>
</select>
<强> PHP 强>
$sql="SELECT date,year FROM $tbl";
$year = 2013;
while($year <= date('Y')){
if($year == $_GET['year']){
$sql .= " AND year=$year ORDER BY date DESC";
}
$year++;
}