Рожденна дата dropdown

Mapu0

Registered
Здравейте,трябва ми скрипт,който да има три select менюта с година на раждане,месец на раждане и ден на раждане.Аз това лесно ще си го направя,но Февруари месец има 28 дни и искам когато се избере на месец "февруари" в select-а с дни да се показват само от 1-ви до 28-ми :)

Благодаря предварително :)
 
Правиш си го и просто ще направиш и една проверка дали е избран февруари и ще махаш от дните или пък ако не е избран ще добавяш дни.
 
това добре,като замисъл и аз го знам,ама с js нещо немога да се справя
 
И с PHP може да се направи. Аз лично бих го направил с него, защото няма да има възможност за никаква манипулация. Ако е с JS и потребителя невелоно/нарочно си го е изключил ще възникне проблемче.
 
+1 за PHP

Може да използваш

PHP:
if ($month=2){
//кода за дните (може с цикъл да ги извадиш)
}

или

PHP:
switch($month){
case 1: $days=30;break;
case 2: $days=29;break;
...
...
...
}
//после пак вадиш дните
 
Можеш да си изнесеш скрипта във функция ако ще го ползваш пак или искаш да го сложиш във външен файл.
HTML:
<html>
    <head>
        <title></title>
    </head>

    <body>
        <form action="?" name="birth-date">
            <select name="year">
                <option value="2005">2005</option>
                <option value="2006">2006</option>
                <option value="2007">2007</option>
                <option value="2008">2008 (leap)</option>
                <option value="2009">2009</option>
                <option value="20010">2010</option>
            </select>
            <select name="month">
                <option value="1">January</option>
                <option value="2">February</option>
                <option value="3">March</option>
                <option value="4">April</option>
                <option value="5">May</option>
                <option value="6">June</option>
                <option value="7">July</option>
                <option value="8">August</option>
                <option value="9">September</option>
                <option value="10">Octomber</option>
                <option value="11">November</option>
                <option value="12">December</option>
            </select>
            <select name="day"></select>
        </form>
        <script type="text/javascript">
            (function () {
                var
                    form        = document.forms['birth-date'],
                    elements    = form.elements,
                    monthDays   = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ],

                    fillDays    = function ( options, from, to ) {
                        for( var i = from; i <= to; i++ ) {
                            options[i-1]    = new Option( i, i );
                        }
                    },

                    bindSelect    = function ( o, f ) {
                        o.onchange    = f;
                    },

                    onChange    = function () {
                        var
                            month    = elements['month'],
                            year    = elements['year'],
                            select    = elements['day'],
                            options    = select.options;

                        return function () {
                            var
                                daysInMonth = monthDays[ month.selectedIndex ],
                                length      = options.length;

                            // February on a leap year
                            if( month.selectedIndex == 1 && Date.prototype.is_leap( year.value ) ) {
                                daysInMonth     = 29;
                            }

                            options.length  = daysInMonth;
                            fillDays( options, length, daysInMonth );
                        }
                    }();

                // Fill days for January
                fillDays( elements['day'].options, 1, 31 );

                // Leap year
                if( typeof Date.prototype.is_leap !== 'function' ) {
                    Date.prototype.is_leap  = function( year ) {
                        if( !year )
                            var year = this.getFullYear();

                            return ( year % 4 === 0 && year % 100 !== 0 ) || year % 400 === 0;
                    }
                }

                // Month onchange
                bindSelect( elements['month'], onChange );

                // Year onchange
                bindSelect( elements['year'], onChange );
            }());
        </script>
    </body>
</html>

EDIT: допълних скрипта с поле за година. Бях забравил, че проверката за високосна година трябва да се прави не на текущата година, а на избраната от потребителя.
 

Back
Горе