我是一个新的Yii用户,我有一个问题,当我想建立一个网站。我的网站有一部分是需要用户输入开始日期和结束日期,我想有一个功能,如果结束日期设置在开始日期之前,它会显示一个对话框来警告用户自动,但我不能这样做。有什么办法吗?
这是我的两个日期文本字段的代码:
<td>Start
<?php
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'name'=>'COURSE_START_DATE',
'model'=>$Cmodel,
'attribute'=>'COURSE_START_DATE',
'language'=>Yii::app()->language=='en_us',
'options'=>array(
'showAnim'=>'fold', // 'show' (the default), 'slideDown', 'fadeIn', 'fold'
'showOn'=>'button', // 'focus', 'button', 'both'
'buttonText'=>Yii::t('ui','Calendar'),
'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.png',
'buttonImageOnly'=>true,
),
)
?></td>
<td>End
<?php
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'name'=>'COURSE_END_DATE',
'model'=>$Cmodel,
'attribute'=>'COURSE_END_DATE',
'language'=>Yii::app()->language=='en_us',
'options'=>array(
'showAnim'=>'fold', // 'show' (the default), 'slideDown', 'fadeIn', 'fold'
'showOn'=>'button', // 'focus', 'button', 'both'
'buttonText'=>Yii::t('ui','Calendar'),
'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.png',
'buttonImageOnly'=>true,
),
));
?>
如果你真的是yii的新手,你将不得不学习一堆东西:
1。如何在yii中执行ajax和客户机验证:
在表单中,您需要指示可能执行ajax和客户端验证。下面是一个例子:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'contacts-form',
'enableAjaxValidation'=>true, // this turns on AJAX validation
'enableClientValidation'=>true, // this turns on Client validation
)); ?>
2。在控制器
中启用ajax验证例如在你的控制器动作调用中:
$this->performAjaxValidation($model);
:
protected function performAjaxValidation($model)
{
if(isset($_POST['ajax']) && $_POST['ajax']==='contacts-form') {
echo CActiveForm::validate($model);
Yii::app()->end();
}
}
3。在您的模型
中创建验证规则然后,您需要创建将比较两个值的验证规则。要做到这一点,你可以使用内置的CCompareValidator通过更改默认操作符为'>',例如。所以在你的模型中你会有这样的东西:
public function rules()
{
return array(
//your other rules
array('COURSE_END_DATE', 'compare', 'compareAttribute'=>'COURSE_START_DATE', 'operator' => '>'),
);
}