【发布时间】:2015-01-14 21:08:46
【问题描述】:
我正在尝试使用 HTML 和 PHP 创建两个下拉菜单。第一个是自动提交,将月份发送到会话变量:
<form action="" method="post">
<select name="month" onchange="this.form.submit()">
<option value="">-- Select Month --</option>
<?php $month = date('n'); // current month
for ($x = 0; $x < 12; $x++) { ?>
<option value="<?php echo date('m', mktime(0,0,0,$month + $x,1)); ?>"
<?php echo date('m', mktime(0,0,0,$month + $x,1)) == $_SESSION['month'] ? "selected='selected'":""; ?> >
<?php echo date('F Y', mktime(0,0,0,$month + $x,1)); ?>
<?php } ?>
</select>
</form>
这很好用。但是我需要第二个下拉菜单,其中包含日期名称和编号:
<form action="" method="post">
<select name="day" onchange="this.form.submit()">
<option value="">-- Select Day --</option>
<?php for ($i = $current_day; $i < 31; $i++) {
$tmp_date = $_SESSION['year']."/".$_SESSION['month']."/".$i;
$weekday = date('D', strtotime($tmp_date)); { ?>
<option value="<?php echo $i; ?>" <?php echo $i == $_SESSION['day'] ? "selected='selected'":""; ?> >
<?php echo $weekday." ".$i; ?>
<?php } ?>
<?php } ?>
</option>
<?php } ?>
</select>
</form>
这使用了一个临时日期,会话变量为我之前设置的“2014”。我需要删除会话年份变量并获取第一个下拉列表以了解所选月份是哪一年,然后将其传递给临时日期,以便它为下一年(2015 年)正确填充日期名称和编号(如果您选择)一月起。目前,在这种情况下,它仅显示当年(2014 年)的日期名称和编号。
【问题讨论】:
-
您将无法根据用户输入动态显示第二个下拉列表,而无需在发送页面之前预填充数组,然后使用 js 显示所选年份或通过将表单发送到得到年份。
标签: php html date strtotime mktime