2011-08-21 44 views
0

我有一個表單,我希望用戶插入他們的生日。我有三個項目。一個月,一天一個,一年一個。我使用PHP來創建表單。我的問題是,如果有人選擇2月作爲月份,他們仍然可以選擇第31天。所有月份都有31天。當有人更改月份字段時,我需要使用JavaScript做出反應嗎?我應該如何解決這個問題?請幫忙。這裏是我的代碼...如何使用HTML和PHP創建一個表單來收集日期

    $today = time(); 
        $f_today = date("M-d-Y", $today); 
        //The Month 
        $todayMonth = date("n",$today); 
        echo "<select id='monthSelect' name='dateMonth'>"; 
        for ($n=1;$n<=12;$n++) { 
         echo "<option value='$n'"; 
         if ($n == $todayMonth) { 
          echo " selected='selected'"; 
         } 
         echo ">$monthName[$n]</option>"; 
        } 
        echo "</select>"; 
        //The Day 
        $todayDay = date("d",$today); 
        echo "<select id='daySelect'name='dateDay'>"; 
        for ($n=1;$n<=31;$n++) { 
         echo "<option value='$n'"; 
         if ($n == $todayDay) { 
          echo " selected='selected'"; 
         } 
         echo ">$n</option>"; 
        } 
        echo "</select>"; 
        //The Year 
        $todayYear = date("Y",$today); 
        echo "<select name='dateYear'>"; 
        for ($n=$todayYear-100;$n<=$todayYear;$n++) { 
         echo "<option value='$n'"; 
         if($n == $todayYear) { 
          echo " selected='selected'"; 
         } 
         echo ">$n</option>"; 
        } 
        echo "</select><br/><br/>"; 
+0

使用jQuery datepicker插件。 http://jqueryui.com/demos/datepicker/ –

回答

2

您可以使用php的cal_days_in_month()這將返回日曆中給定月份和年份的正確數字天數。 您可以在javascript中使用onchange事件來查看月份和年份元素。因此,當用戶選擇月份或年份時,您會調用一個使用cal_days_in_month()的php腳本(通過AJAX),以返回該月份和年份的正確天數。然後你使用給定的結果來更新#daySelect內容。

當然(就像之前建議的那樣)jQuery datepicker在這種情況下是更好/更簡單的解決方案。

1

你可以定義個月的關聯數組作爲這樣的:陣列(一月=> 30,二月=> 28,......)。通過onChange處理程序將月份選擇框鏈接到一個JS函數,該函數將選擇框(Jan,Feb等)的值拉出並將其用作arr中的鍵。使用數組中的值來添加/減去正確的天數。

相關問題