通过CJuidialog按钮提交表单

时间:2013-10-01 08:11:46

标签: javascript php yii dialog

我正试图在CJuidialog中操纵我的按钮。我希望在对话框中有一个submit button。我有一个复选框“default”,如果选中它,则检查数据库中的数据。我有一份员工列表,我输入他们的数据。只要员工已经有schedule,它就会显示一个弹出窗口。你已经有了一个时间表。你想继续吗?然后,在我的cjuidialog。我有一个“确定”按钮和“取消”。如果用户单击确定。它将提交表单并找到相同的员工,并将其默认值“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已经有一个默认值。它会显示一个弹出窗口,其中显示“你已经有了一个时间表。你想继续吗?”。如果用户点击“确定”,则新数据将为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();?>

here is the picture

1 个答案:

答案 0 :(得分: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'),
  ));
}