簡體   English   中英

為每個和Javascript創建3個selectbox(months,days,years)php循環選項,以在months更改時更改days選項。

[英]create 3 selectbox(months, days, years) php looping options for each and Javascript to change options for `days` when `months` changes

我有以下選擇框:

<?php 
echo'
<select id="months"></select>

<select id="days"></select>

<select id="years"></select>
'; ?>

我希望每個選擇框的選項都是當前日期,以便在加載時自動選擇。 例如今天(2016年1月28日):第一個選擇框應選擇1月。 下一個應該是18,最后一個應該是2016。

實際上,我已經使用此代碼在days選擇框中使用了該功能。

for ($x = 1; $x <= 31; $x++) {
        echo '<option value="'.$x.'" ';

        if ($x == date_format($nowdate,'d'))
        {
            echo 'selected';
        }
        echo' >'.$x.'</option>';
        }

但是我不知道months怎么做。 還有1個問題,我希望當months改變時, days也應根據所選月份的天數改變其選項。 任何幫助將不勝感激。 謝謝。

考慮將2000-3000作為years中包含的選項選擇框

您可以嘗試以下代碼來填充月份:

    for ($x = 1; $x <= 12; $x++) {
        $mon = date('F', mktime(0,0,0,$x));
        echo '<option value="'.$mon.'" ';
        if ($mon == date('F'))
        {
           echo 'selected';
        }
        echo' >'.$mon.'</option>';
    }

同樣,您可以使用date('Y')來計算當前年份。

對於JavaScript部分,您可以使用以下代碼-

月份更改時,選擇框調用以下函數並傳遞兩個參數(當前選定的月份和選定的年份)-

    function getCurrentdays(month,year) {
        var currentdays = new Date(year, month, 0).getDate();   
        populatedayscombo(currentdays);
    }

    function populatedayscombo(currentdays)
    {
        document.getElementById("monthscombo").options.length = 0;
        for (x = 1; x <= currentdays; x++) 
        {
            var newOption = document.createElement("option");
            newOption.text = x;
            newOption.value = x;
            document.getElementById("monthscombo").add(newOption);
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM