0

私は新しい Yii ユーザーです。ウェブサイトを構築したいときに問題があります。私のウェブサイトには、ユーザーが開始日と終了日を入力する必要がある部分があります.1つの機能が必要です.終了日が開始日より前に設定されている場合、ユーザーに自動的に警告するダイアログボックスが表示されますが、私はそれはできません。それを行う考えはありますか?

2 つの日付テキスト フィールドのコードは次のとおりです。

<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,

            ),
        ));

        ?>
4

1 に答える 1

1

あなたが本当に 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. モデルに検証ルールを作成する

次に、2 つの値を比較する検証ルールを作成する必要があります。これを行うには、たとえば、デフォルトの演算子を '>' に変更して、 CCompareValidatorのビルドを使用できます。したがって、モデルには次のようなものがあります。

public function rules()
{
    return array(
        //your other rules
        array('COURSE_END_DATE', 'compare', 'compareAttribute'=>'COURSE_START_DATE', 'operator' => '>'),
    );
}
于 2013-03-27T09:23:14.907 に答える