我正在php文件中编写html
代码。
我有一个下拉菜单,允许用户使用类似这样的月份和年份查询结果。
查询使用默认的当前月份和年份进行搜索,但是例如,当我搜索April 2018
时,结果是正确的,但是下拉选择选项仍然显示July 2018
。
我的代码:
<table width="80%" border="0" align="center" cellpadding="7" cellspacing="2">
<tr bgcolor="#ffffff">
<td height="6" colspan="2" bgcolor="#E6E6FA">
Month
<select name="soutlet" id="soutlet">
<option selected="selected" value="7">July</option>
<option value="">-----------</option>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
Year
<select name="soutletto" id="soutletto">
<option selected="selected" value="2018">2018</option>
<option value="">-----</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
</select>
<input type="submit" name="btn_search" id="btn_search" value="Search" ></td>
</tr>
如何修改我的html
代码,以使下拉列表显示正确的month
和year
?如果我搜索2018年4月,它将显示
答案 0 :(得分:2)
如果您使用数组和循环(即<select>
)来创建<?php
$months = array(
1=>"January",
2=>"February",
3=>"March",
4=>"April",
5=>"May",
6=>"June",
7=>"July",
8=>"August",
9=>"September",
10=>"October",
11=>"November",
12=>"December"
);
?>
<select name="soutlet" id="soutlet">
<option value="">-----------</option>
<?php foreach($months as $key=>$month){
//if posted value matches current value add selected
$sel = ($key==$_POST['soutlet']) ? ' selected="selected"' : '';
echo '<option value="'.$key.'" '.$sel.'>'.$month.'</option>';
}
?>
</select>
,则容易一些。
<?xml version="1.0" encoding="Shift_JIS"?>
<!-- <!DOCTYPE SERVICETICKETVIEW SYSTEM "SERVICETICKETVIEW.dtd"> --><SERVICETICKETVIEW><SERVICES><SERVICE>amrankr0</SERVICE>.....
...
答案 1 :(得分:0)
您应该在$_post['month'] = option value
$_post
用于post
请求,$_get
用于get
请求
答案 2 :(得分:0)
要解决此问题,您可以在提交表单时将月份值存储到变量中。如果您使用POST方法(进行一些验证),则类似于$month = $_POST['soutlet']
。
然后,您必须在html select>选项中比较此值并将其设置为被选中。像这样在<option>
标签内
<option value="1" <?php echo isset($month) ? ($month == '1' ? 'selected' : '') : ''; ?> >January</option>
并且不要忘记删除从<option>
中选择的静态定义,并使用与年份相同的逻辑。
答案 3 :(得分:0)
请同时创建年/月打印功能,并根据该功能设置功能参数
function month_select($month = '', $name = 'soutlet', $class = 'soutlet', $id = 'soutlet')
{
$month_sel = '<select id="'.$id.'" name="'.$name.'" name="'.$class.'" >';
$month_sel .= '<option value="">Select Month</option>';
for($i = 1; $i <= 12; $i++)
{
$month_sel .= '<option value="'.$i.'" '.(($month == $i)?'selected="selected"':'').'>'.date("F", mktime(0, 0, 0, $i, 10)).'</option>';
}
$month_sel .= '</select>';
return $month_sel;
}
function year_select($year = '', $name = 'soutletto', $class = 'soutletto', $id = 'soutletto')
{
$year_sel = '<select id="'.$id.'" name="'.$name.'" name="'.$class.'" >';
$year_sel .= '<option value="">Select Year</option>';
for($i = 0; $i <= 5; $i++)
{
$cur_year = date("Y") - $i;
$year_sel .= '<option value="'.$cur_year.'" '.(($cur_year == $year)?'selected="selected"':'').'>'.$cur_year.'</option>';
}
$year_sel .= '</select>';
return $year_sel;
}
echo month_select($_GET['soutlet']);
echo year_select($_GET['soutletto']);
OR
You can use POST method
echo month_select($_POST['soutlet']);
echo year_select($_POST['soutletto']);
答案 4 :(得分:0)
假设您要发布到同一页面,则可以执行以下操作。 (仅简化了1个月和1年,但您知道了)
table width="80%" border="0" align="center" cellpadding="7" cellspacing="2">
<tr bgcolor="#ffffff">
<td height="6" colspan="2" bgcolor="#E6E6FA">
Month
<select name="soutlet" id="soutlet">
<option <?php if($POST['soutlet']==7) echo 'select="selected"'; ?> value="7">July</option>
</select>
Year
<select name="soutletto" id="soutletto">
<option <?php if($POST[soutletto]==2018) echo 'select="selected"'; ?> value="2018">2018</option>
</select>