我已经选择了一个旧的{"check":"success"}
项目并已迁移到CI
,除了3.0.6
和less_than
所具有的验证规则外,大部分内容现在都已稳定已被使用。
这是规则的非验证部分(其他规则正常):
greater_than
以下是如何生成时间下拉列表:
$this->form_validation->set_rules('start', 'Start time', 'required|less_than[end]');
$this->form_validation->set_rules('end', 'End time', 'required|greater_than[start]');
这是生成的html:
echo form_dropdown('start', $start_end_options, $start);
echo form_dropdown('end', $start_end_options, $end);
这里可能出现什么问题?
非常感谢任何帮助或指导。
答案 0 :(得分:1)
问题是验证例程((define (calculate lst sum1 sum2)
(define (calculate lst sum1 sum2)
...) ; original implementation
(let ((result (calculate lst sum1 sum2)))
(if (zero? result)
#f
#t)))
,less_than
)需要数字或数字字符串。使用值字符串中的冒号(:),它们不是数字字符串。
如果您使用greater_than
的时间戳,您需要的验证程序将起作用。
使用函数value
转换为时间戳。
strtotime("time_sting")
返回1461733200。
以下是问题中值的时间戳
strtotime("00:00:00")
用于"00:00:00" = 1461733200
"00:15:00" = 1461734100
"00:30:00" = 1461735000
"00:45:00" = 1461735900
"01:00:00" = 1461736800
<select>
<select name="start">
<option value="1461733200">00:00<option>
<option value="1461734100">00:15<option>
<option value="1461735000">00:30<option>
<option value="1461735900">00:45<option>
<option value="1461736800">01:00<option>
</select>
和less_than
将适用于上述内容。
您也可以编写自己的验证方法来处理带有冒号的greater_than
字符串。
value
如果字符串相等,上面的内容也将返回 public function timestring_less_than($str, $max)
{
return strcmp($str, $max) < 0 ? TRUE : FALSE;
}
。
可以很容易地定义补充验证方法。
FALSE