<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

    最新評論

    主站蜘蛛池模板: 污污网站免费观看| 黄页免费在线观看| 国产成人无码a区在线观看视频免费| 亚洲欧洲在线播放| 亚洲三级高清免费| 亚洲日本一线产区和二线| 岛国片在线免费观看| 亚洲av无码成人影院一区| 日本高清免费不卡视频| 免费无码午夜福利片69| 亚洲综合激情另类专区| 国产免费牲交视频免费播放| 国产AV无码专区亚洲精品| 精品一卡2卡三卡4卡免费视频| 亚洲福利在线观看| 国产精品久久久久免费a∨ | 日本视频免费观看| 国产精品亚洲综合一区| 久久久国产精品福利免费| 91精品国产亚洲爽啪在线影院| 1000部拍拍拍18勿入免费视频软件| 亚洲AV综合色区无码二区爱AV| 成年女人色毛片免费看| 国产精品亚洲二区在线| 亚洲一区二区三区在线播放| 国产白丝无码免费视频| 亚洲男人天堂2022| 亚洲日韩人妻第一页| 最近免费中文字幕mv电影| 一本天堂ⅴ无码亚洲道久久| 亚洲另类激情专区小说图片| 免费观看男人吊女人视频| 亚洲av午夜精品无码专区| 免费在线不卡视频| 99在线观看精品免费99| 日韩亚洲翔田千里在线| 亚洲VA中文字幕不卡无码| 成人免费在线观看网站| 青青操视频在线免费观看| 亚洲欧洲另类春色校园网站| 亚洲免费日韩无码系列 |