PHP表单生成器

时间:2009-06-15 03:54:40

标签: php forms form-generator

如何使用PHP生成表单的一部分?

我想制作一个允许用户输入日期的表单 通过月,日和年的下拉菜单分别不输入每一个 菜单的选项,如何用PHP自动完成?

例如,我如何生成1月份的1-31天,2月份的1-28天等等,而无需使用纯HTML手动输入?

4 个答案:

答案 0 :(得分:2)

这是我在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>

如果您要使用它们,可以创建输出它们的函数。

编辑:我没有花时间自动填充日期,因为服务器端仍应检查日期。

答案 1 :(得分:0)

我认为HTML5有一个日期选择器组件,但是使用它可能还为时过早。

盖伦走在正确的轨道上,但是当您在浏览器中从一个月更改为另一个月时,您将无法获得正确的日期设置(即:如果您不打电话,您将在2月31日结束回到服务器)

Itay Moav的Javascript建议我认为是要走的路:使用javascript在浏览器端修改DOM。当用户选择二月,触发月选择器的onChange事件时,您将重写日期选择器,并创建28-29天,具体取决于年份(!)

我做了something along these lines一次,你应该能够毫不费力地拆开页面/脚本(网站是日文的,但是源代码编写得不好)。< / p>

答案 2 :(得分:0)

两个答案:

1:找一个JavaScript Calendar类。

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

答案 3 :(得分:0)

此外,如果要显示脚本执行的月份天数,您可以执行以下操作:

print date("t", mktime(0,0,0, date("n") ));  

这将输出30,31或28(如果是2月)