zm6931
新手上路

UID 70097
精华
0
积分 48
帖子 32
金钱 48 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-3-22
状态 离线
|
鼓足勇气,发个简单的日期下拉框连动。
学习PHP也有一段时间了,经常碰到(至少3、4次了)日期下拉框的联动问题(比如说平年2月28,闰年2月29),当时就是从网上google一下,从来没想过好好整理一下,下次遇到了可以立马用上,今天终于花了一点时间整理一下,希望可以对大家有所帮助。
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script> function selchange() { MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var year=document.getElementById("year_sel"); var month=document.getElementById("month_sel"); var year_value=year.selectedIndex+1950; var month_value=month.selectedIndex; var n = MonHead[month_value];
if (month_value==1 && IsPinYear(year_value)) { n++; } writeDay(n); } function optionsClear(day) { day.options.length = 0; } function IsPinYear(year) { return(0 == year%4 && (year%100 !=0 || year%400 == 0)); } function writeDay(n) { var day=document.getElementById("day_sel"); optionsClear(day); for (var i=1; i<(n+1); i++) { day.options.add(new Option(i, i)); } } </script> </head>
<body> <form name="form0"> <div> <select name="year_sel" id="year_sel" onchange="selchange()"> <?php $thisdate=date('Y-m-d',$_SERVER['REQUEST_TIME']); $thisdate_arr=explode("-",date('Y-m-d',$_SERVER['REQUEST_TIME'])); $thisyear=$thisdate_arr[0]; for($i=1950;$i<=2050;$i++) { $selected=($i==$thisyear)?" selected ":""; echo "<option value=\"".$i."\" ".$selected.">".$i."</option>n"; } ?> </select> 年 <?php echo $time;?> <select name="month_sel" id="month_sel" onchange="selchange()"> <?php $thismonth=$thisdate_arr[1]; for($j=1;$j<=12;$j++) { $selected=($j==$thismonth)?" selected ":""; echo "<option value=\"".$j."\" ".$selected.">".$j."</option>n"; } ?> </select> 月 <select name='day_sel' id='day_sel'> <?php $thisday=$thisdate_arr[2]; for($k=1;$k<=31;$k++) { $selected=($k==$thisday)?" selected ":""; echo "<option value=\"".$k."\" ".$selected.">".$k."</option>n"; } ?> </select> 日 <div> </form>
</body> </html>
|
|