<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    項目中用到一個級聯、動態下拉選擇日期框。我以前也收集過關于地區級聯的,那時候是用別人代碼。今天這個雖然簡單但感覺自己還是進步滿大,最起碼是自己親手寫出來的。o(∩_∩)o...哈哈
    ???首先是php代碼生成一個年月日的下拉組件。

    ?1 <? php
    ?2 ???? echo ? " <select?id=\ "" .$statement. " _year\ " ?onchange=\ " resetDate( ' ".$statement." ' )\ " ?disabled> " ;
    ?3 ???? for ( $i = 2003 ; $i <= 2015 ; $i ++ )
    ?4 ????{
    ?5 ???????? if ( $i == 2003 )
    ?6 ????????{
    ?7 ???????????? echo ? " <option?value=\ "" .$i. " \ "" . " ?selected> " . $i . " </option> " ;
    ?8 ????????}
    ?9 ???????? else
    10 ????????{
    11 ???????????? echo ? " <option?value=\ "" .$i. " \ " > " . $i . " </option> " ;????
    12 ????????}
    13 ????}
    14 ???? echo ? " </select>年 " ;
    15 ???? echo ? " <select?id=\ "" .$statement. " _month\ " ?onchange=\ " resetDate( ' ".$statement." ' )\ " ?disabled> " ;
    16 ???? for ( $i = 1 ; $i <= 12 ; $i ++ )
    17 ????{
    18 ???????? if ( $i == 1 )
    19 ????????{
    20 ???????????? echo ? " <option?value=\ "" .$i. " \ "" . " ?selected> " . $i . " </option> " ;
    21 ????????}
    22 ???????? else
    23 ????????{
    24 ???????????? echo ? " <option?value=\ "" .$i. " \ " > " . $i . " </option> " ;????
    25 ????????}
    26 ????}
    27 ???? echo ? " </select>月 " ;
    28 ???? echo ? " <select?id=\ "" .$statement. " _day\ " ?disabled> " ;
    29 ???? for ( $i = 1 ; $i <= 28 ; $i ++ )
    30 ????{
    31 ???????? if ( $i == 1 )
    32 ????????{
    33 ???????????? echo ? " <option?value=\ "" .$i. " \ "" . " ?selected> " . $i . " </option> " ;
    34 ????????}
    35 ???????? else
    36 ????????{
    37 ???????????? echo ? " <option?value=\ "" .$i. " \ " > " . $i . " </option> " ;????
    38 ????????}
    39 ????}
    40 ???? echo ? " </select>日 " ;
    41 ?>
    42

    也許你已經發現了,組件的ID我用了一個動態的。但是更讓你氣氛的是我居然把2月的日期都只寫了28天。(其實應該寫31天,必定默認選擇的是1月吧)(難道是防止閏年2月用戶卻選擇29,甚至選擇30、31?)哈哈,你誤會了。請看下面的javascript代碼。
    ?1/*
    ?2?*?@breif:?根據月份?以及年份調整日期的下拉選擇天數
    ?3?*?
    ?4?*/

    ?5function?changDay(obj)
    ?6{
    ?7????var?year_id?=?obj+"_year";
    ?8????var?month_id?=?obj+"_month";
    ?9????var?day_id?=?obj+"_day";
    10????var?year?=?Arr_year[parseInt(document.getElementById(year_id).selectedIndex)];
    11????var?month?=?Arr_month[parseInt(document.getElementById(month_id).selectedIndex)];
    12????//獲取下拉框
    13????var?select?=?document.getElementById(day_id);
    14????//獲取下拉框列表
    15????var?options??=?document.getElementById(day_id).options;
    16????var?len?=?options.length;
    17????//大月情況,即有31號
    18????if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
    19????{
    20????????while(len<31)
    21????????{
    22????????????//增加一個元素
    23????????????options[len]=new?Option(len+1,len+1);
    24????????????len++;
    25????????}

    26????}

    27????else?if(month==4||month==6||month==9||month==11)//小月,但不為2月
    28????{
    29????????while(len<30)
    30????????{
    31????????????//增加一個元素
    32????????????options[len]=new?Option(len+1,len+1);????????????
    33????????????len++;
    34????????}

    35????????while(len>30)
    36????????{
    37????????????//刪除一個元素
    38????????????select.remove(len-1);
    39????????????len--;
    40????????}

    41????}

    42????else?if(month==2&&(year%4==0&&year%100!=0||year%400==0))
    43????{
    44????????while(len>28)
    45????????{
    46????????????//刪除一個元素
    47????????????select.remove(len-1);
    48????????????len--;
    49????????}

    50????}
    else
    51????{
    52????????while(len<29)
    53????????{
    54????????????//增加一個元素
    55????????????options[len]=new?Option(len+1,len+1);????????????
    56????????????len++;
    57????????}

    58????????while(len>29)
    59????????{
    60????????????//刪除一個元素
    61????????????select.remove(len-1);
    62????????????len--;
    63????????}

    64????}

    65}

    66/*
    67?*?@breif:?選擇年份?或者月份后?重置日期為1
    68?*/

    69function?resetDate(obj)
    70{
    71????var?state_Flag?=?obj+"_day";
    72????document.getElementById(state_Flag).selectedIndex=0;
    73????changDay(obj);
    74}

    這里利用了簡單的dom編程,根據年月來通過事件動態增刪下拉列表選擇組件。

    最近到處問級聯怎么寫的人不少。實際上我這里只是我寫的一個簡單的算法,你大可不必想這么細,想想方法,知道怎么來著就ok了。

    比如我就在寫這篇博客的時候想到用ajax,動態取數據,那時候用ajax不是試過動態替換div嘛,當然也可以替換option原色的。但是總不適合刷新頁面的,所以用腳本或者ajax比較正常。

    當然我們下拉框也許不多。比我的這種。那么我們還可以同時放幾個select組件在那里,然后根據事件(即用戶對其他選項的操作)控制其是否顯示或者不顯示哪個select。

    大家可以談論啊。不一定要什么太專業,我們可以有很多想法,有不同的想法,也希望大家分享,賜教。

    ps:記得從前有人參加計算機考試,題目是讓寫程輸出:(大概意思了吧)

    *
    **
    ***
    ****
    *****
    (也許沒有這么規則,大概是要求用某種算法的形式。)
    1. 有人用了比較傳統的書上方法

    2. 我當時用了一個字符串“*****”循環打印其子串;

    3. 不過有一哥們,直接就是:
    system.out.println("*");
    system.out.println("*"*);
    ……
    事后,誰能說他是錯的(相反我覺得那小子不錯!),老師一定滿無奈的(當時不是學了)。(o(∩_∩)o...哈哈)必定那不是他考題的目的吧。
    posted on 2007-08-09 22:13 -274°C 閱讀(3413) 評論(1)  編輯  收藏 所屬分類: PHP


    FeedBack:
    # re: 簡單日期下拉框

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊

    JAVA網站

    關注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914354
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: yy6080久久亚洲精品| 九九九精品成人免费视频| 在线观看免费中文视频| 又黄又爽又成人免费视频| 免费黄色毛片视频| 亚洲国产精品成人久久蜜臀 | 亚洲中文字幕无码av在线| 亚洲日韩精品A∨片无码加勒比 | 亚洲字幕在线观看| 亚洲a∨国产av综合av下载| fc2成年免费共享视频网站| 免费精品无码AV片在线观看| 野花高清在线观看免费完整版中文 | 亚洲成AV人在线观看网址| 亚洲成AV人片在线观看WWW| 国产精品亚洲片在线va| 四虎影视久久久免费观看| 你懂得的在线观看免费视频| av免费不卡国产观看| 日韩精品成人亚洲专区| 亚洲AV无码成人专区片在线观看| 2020久久精品亚洲热综合一本| 一区二区三区免费在线视频| 最近中文字幕国语免费完整| 日本19禁啪啪无遮挡免费动图| 亚洲精品无码av人在线观看| 亚洲午夜在线播放| 青青操免费在线视频| 女人18毛片a级毛片免费| 亚洲人成在线播放网站| 亚洲欧美综合精品成人导航| 99久久免费国产精品热| 成年美女黄网站18禁免费| 国产精品亚洲A∨天堂不卡| 亚洲成av人无码亚洲成av人| 国产成人精品一区二区三区免费| 四虎www免费人成| 久久久久亚洲AV无码永不| 男人免费视频一区二区在线观看| 国产91免费视频| 亚洲精品V欧洲精品V日韩精品|