如何使用PHP生成表單的某些部分?PHP表單生成器
我想提出,允許用戶通過月,日的下拉菜單輸入日期 形式,和同比分別不鍵入菜單的每一個 選項,我將如何做自動所以用PHP?
例如,我將如何生成一月份1-21,2月份1-28這樣的日子,等等,而無需使用純HTML手動輸入它們?
如何使用PHP生成表單的某些部分?PHP表單生成器
我想提出,允許用戶通過月,日的下拉菜單輸入日期 形式,和同比分別不鍵入菜單的每一個 選項,我將如何做自動所以用PHP?
例如,我將如何生成一月份1-21,2月份1-28這樣的日子,等等,而無需使用純HTML手動輸入它們?
這裏是我如何做到這一點在PHP
<select name="birthday_month" id="birthday_month">
<option value=""></option>
<? foreach(range(1,12) as $month): ?>
<option value="<?= $month ?>"><?= date('F', mktime(1,1,1,$month,1,2000)) ?></option>
<? endforeach; ?>
</select>
<select name="birthday_day" id="birthday_day">
<option value=""></option>
<? foreach(range(1,31) as $day): ?>
<option value="<?= $day ?>"><?= $day ?></option>
<? endforeach; ?>
</select>
<select name="birthday_year" id="birthday_year">
<option value=""></option>
<? foreach(range(date('Y'),1900) as $year): ?>
<option value="<?= $year ?>"><?= $year ?></option>
<? endforeach; ?>
</select>
一個簡化版本,您可以創建函數輸出他們,如果你打算使用他們很多。
編輯:我不花時間自動填充日子,因爲日期應該仍然是服務器端檢查。
我認爲HTML5已經有了日期選擇器組件,但使用它可能爲時過早。
Galen正處於正確的軌道上,但是當您在瀏覽器中從一個月變爲另一個月時,您將無法獲得正確的日期設置(即:如果您沒有得到正確的日期設置,您將最終得到2月31日回電給服務器)
Itay Moav的Javascript建議我相信是要走的路:使用javascript在瀏覽器端修改DOM。當用戶選擇二月,觸發月份選擇器的onChange事件時,將重寫日期選擇器,並根據年份(!)創建28-29天(012)拉開頁面/腳本沒有太多的困難(該網站的日文,,但源代碼寫得不好)。
即使使用javascript來自動填充當月的日子,您仍然必須檢查服務器端的日期。我的方式只是簡單得多。 – Galen 2009-06-15 04:38:30
兩個答案:
1:查找JavaScript日曆類。
2:在PHP:
$year = 2009; // February has different days in month - based on leap year
for ($month = 1; $month <= 12; $month++)
$lastDayOfMonth[$month] = date("j", strtotime("yesterday", strtotime($month+1."/1/$year")));
現在你有個數組(地圖),按月指數,與設置爲天的月份的數字值;
時間碼基本上是這樣說的:找到下個月的第一天 - 然後找到昨天(下個月的第一天前一天) - 然後返回一天。因此,該月的最後一天是該月的天數。
-CF
另外,如果你想顯示的天中正在執行的腳本月份的數字,你可以這樣做:
print date("t", mktime(0,0,0, date("n")));
這將輸出無論是30,31,或28(如果是二月)
不是PHP,JS中有控制這樣做的控件。我正在使用我自己寫的一個...找到我,我們將看到我們能做些什麼。 – 2009-06-15 03:58:41