我需要添加一个休假列表。它应该只添加2年,所以它应该只显示我所做的2014年和2015年。我的问题是我必须显示月份当他选择2014年它不应该从1月到5月显示,如果他选择2015它应该显示1月到12月。我如何根据年填充月份
在图片显示2013年请忽略,因为我的系统显示错误的一年。
这是我的HTML代码
<table>
<tr>
<td colspan="3">Add Leave</td>
</tr>
<tr>
<td width="170" valign="middle" height="40" align="left">Date</td>
<td width="15" valign="middle" align="left">:</td>
<td><select id="frm_day" name="frm_day">
<?php
for($i=1;$i<31;$i++)
{
echo "<option value=".$i.">".$i."</option>";
}
?> </select>
</td>
<td>
<select id="frm_year" name="frm_year">
<option value="<?php echo date("Y");?>"><?php echo date("Y");?></option>
<option value="<?php echo date("Y")+1;?>"><?php echo date("Y")+1;?></option>
</select>
</td>
<td>
<select id="frm_month" name="frm_month">
<option value="<?php echo date("m");?>"><?php echo date("M");?></option>
</select>
</td>
</tr>
<tr>
<td colspan="3">
<input type="submit" name="Submit" id="Submit" value="Submit" class="submit" />
</td>
</tr>
</table>
答案 0 :(得分:0)
您可以从 here
获得最简单的内容然后你可以使用它:
$timestamp = strtotime("+1 month", yourstartdate);
并使用它
date('Ymd', $timestamp);
你必须绕过未来的那些:
for($i=0;$i < 12; $i++)
{
$timestamp = strtotime("+".$i." months");
if(isInFuture($timestamp) && date('m', $timestamp) <= 12) echo date('m', $timestamp);
}
function isInFuture($date, $timestamp = "")
{
return ($date > date($timestamp));
}
答案 1 :(得分:0)
在<body>
<script type="text/javascript">
var currentMonth = <?php date('m'); ?>;
var currentYear = <?php date('Y'); ?>;
var fullList = document.getElementById('frm_month').innerHTML;
function changedYear(obj) {
var selectedYear = obj.value,
node;
if (selectedYear == currentYear) {
for (var i = 1; i < currentMonth; i++) {
node = document.querySelector('#frm_month option[value='+i+']');
node.parentNode.removeChild(node);
}
} else {
document.getElementById('frm_month').innerHTML = fullList;
}
}
</script>
并改变:
<select id="frm_year" name="frm_year">
到
<select id="frm_year" name="frm_year" onchange="changedYear(this)">
如果用户选择它,将删除当前年份中的月份。在任何其他年份,完整列表将被恢复。
答案 2 :(得分:0)
我强烈建议在这个上使用一个日期选择器。一个流行的日期选择器是jquery UI datepicker.
以下是您要实现的目标示例:
这包括2年的上限。
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css" />
<form method="POST" action="">
<table border="0" cellpadding="10">
<tr>
<th width="100" align="left">Date</th>
<td><input type="text" name="frm_day" id="frm_day" size="1" readonly></td>
<td><input type="text" name="frm_year" id="frm_year" size="5" readonly></td>
<td><input type="text" name="frm_month" id="frm_month" size="3" readonly></td>
<td><img src="http://jqueryui.com/resources/demos/datepicker/images/calendar.gif" id="datepickerImage" style="cursor: pointer;" /></td>
</tr>
</table>
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#datepickerImage').on('click', function(){
$("#frm_day").datepicker('show');
});
$('#frm_day, #frm_month, #frm_year').datepicker({
minDate: 0,
maxDate: '+2Y',
changeMonth: true,
changeYear: true,
dateFormat: 'd/yy/M',
onClose: function(dateText){
$(this).val('');
$('#frm_day').val(dateText.split('/')[0]);
$('#frm_month').val( dateText.split('/')[2]);
$('#frm_year').val( dateText.split('/')[1]);
}
});
});
</script>
有关详细信息,请访问docs。所有设置都可以在那里找到。