为每个选择框(月,天,年)创建3个PHP循环选项,Javascript在“月”更改时更改“天”的选项


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上做到这一点.还有一个问题,我希望当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>';
    }

同样,您可以使用日期("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);
        }
    }