0

CJuidialog でボタンを操作しようとしています。ダイアログの中に入れたいですsubmit button。チェックボックス「デフォルト」があり、チェックされている場合はデータベースからデータをチェックします。データを入力する従業員のリストがあります。従業員がすでに を持っている場合は常に、scheduleポップアップが表示されます。あなたはすでにスケジュールを持っています。続けますか?次に、私のcjuidialogで。「OK」ボタンと「CANCEL」ボタンがあります。ユーザーが [OK] をクリックした場合。フォームを送信して同じ従業員を見つけ、デフォルトの「1」を「0」に変更します。

新しいフォームがデフォルトになり、以前のフォームが通常のスケジュールになるようにします。

例えば:

データベースにfk_user = 1 , default = 1 , from= 07/07/13 , to = 07/10/13 , schedule = 5データがあります。fk_user = 1 , default = 1, from = 10/10/13 , to = 12/12/13 , schedule = 6次に、fk_user 1 のデフォルトが既に存在する別のフォームを作成します。「すでにスケジュールがあります。続行しますか?」というポップアップが表示されます。ユーザーが「OK」をクリックすると、新しいデータにfk_user = 1 , default = 1, from = 10/10/13 , to = 12/12/13 , schedule = 6なりfk_user = 1 , default = 0 , from= 07/07/13 , to = 07/10/13 , schedule = 5、以前のデータは以前のデータになり、0 になります。

私は過去数日間これを試してきましたが、私のシステムが完成する唯一の問題です。誰でもこれらで私を助けることができますか?

ここでまだajax送信ボタンを使用するかどうかはわかりません。ネットで調査しましたが、これに関するドキュメントが見つかりません。

私はこれで始めました。

public function actionCreate()
{
    $model=new EmpSched;
    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);
    if(isset($_POST['EmpSched']))
        //$fk_user= $model->fk_user;
        $model->attributes=$_POST['EmpSched'];
        if($model->default==1){
            $record = EmpSched::model()->findAllByAttributes(array('fk_user' => $model->fk_user,'default'=>array('1')));
            var_dump($record);
            if($record==false){
                ($model->save());
                $this->redirect(array('view','id'=>$model->id_empsched));
            }else{
                $this->renderPartial('popup');
            }
        }else{
            ($model->save());
                $this->redirect(array('view','id'=>$model->id_empsched));
        }
    }
    $this->render('create',array(
        'model'=>$model,
        'emp'=> new CActiveDataProvider('schedule'),
    ));
}

popup.php

<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm',array(
'id'=>'popup-form',
'enableAjaxValidation'=>true,
)); ?>
<?php


$this->beginWidget('zii.widgets.jui.CJuiDialog',array(
'id'=>'mydialog',
// additional javascript options for the dialog plugin
'options'=>array(
    'title'=>'Michael',
    'autoOpen'=>true,
    'modal'=>true,
    'width'=>300,
    'height'=>300,
    'buttons' => array(
        'OK'=>'js:function(){
        //$(this).dialog("close")
        }',
        'CANCEL'=>'js:function(){$(this).dialog("close")}'),
),
));

echo 'Another default schedule is already using. Do you want to set current schedule as     default? ';

$this->endWidget('zii.widgets.jui.CJuiDialog');
?>
<?php $this->endWidget();?>

ここに写真があります

4

1 に答える 1

1

保存する前にこの変更を行う必要があるのはなぜですか?

私は保存時にこれを行い、モーダルを広告にのみ使用します。

このような:

public function actionCreate()
{
  $model=new EmpSched;
  // Uncomment the following line if AJAX validation is needed
  // $this->performAjaxValidation($model);
  if(isset($_POST['EmpSched']))
      //$fk_user= $model->fk_user;
      $model->attributes=$_POST['EmpSched'];
      if($model->validate()){
        if($model->default==1){
          EmpSched::model()->updateAll(array('default'=>0),'fk_user=:fk_user',array(':fk_user' => $model->fk_user); 
        }
        if($model->save(false)){
          $this->redirect(array('view','id'=>$model->id_empsched));
        }  
      }

  }
  $this->render('create',array(
      'model'=>$model,
      'emp'=> new CActiveDataProvider('schedule'),
  ));
}
于 2013-10-02T09:38:23.803 に答える