Smarty html_select_date,包含空字段

时间:2013-12-13 11:58:02

标签: php smarty

我在使用smarty的html_select_date自定义函数时遇到问题。在这里,我用它来显示一个配置文件编辑页面上的出生日期选择字段,并且大多数它工作正常,但我的问题是当我试图告诉smarty将一个或多个字段设置为空值。我有这个:

{assign var="dateofbirth" value="`$errors['DOB']['year']`-`$errors['DOB']['month']`-`$errors['DOB']['day']`"}
{html_select_date prefix="birthday" time=$dateofbirth start_year="-75" field_order="DMY" reverse_years="true" all_extra="onChange='saneDates()'" year_empty="Year" month_empty="Month" day_empty="Day"}

$ errors数组填充在PHP中 - 我的目标是构建一个字符串,就像文档所说的那样,可以通过省略缺失值来指示空字段,例如“2013-12-”。那个部分正在工作,我已经抛弃了输出而我正好设置了这个,但聪明的是将day字段设置为“13”(即今天的日期),而不是我期待的空值。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您不能使用字符串时间值执行此操作。 Smarty正在尝试制作有效的时间戳(有关详细信息,请参阅plugins目录中的 shared.make_timestamp.php )。当我查看 function.html_select_date.php 时,我注意到您必须将time属性作为关联数组传递。数组键必须是前缀+年/月/日。我用一些虚拟数据(Smarty 3.1.15)测试了这个

{assign 'dateofbirth' ['birthdayYear' => $errors.DOB.year,'birthdayMonth' => $errors.DOB.month, 'birthdayDay' => 0]}

希望这有帮助!