0

我正在尝试在 CJuidialog 中操作我的按钮。我想submit button在我的对话框中有一个。我有一个“默认”复选框,如果选中,请检查数据库中的数据。我有一个员工列表,我在其中输入了他们的数据。每当员工已经拥有一个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 = 6fk_user 1 已经有一个默认值。它会显示一个弹出窗口,上面写着“你已经有一个时间表。你想继续吗?”。如果用户单击“确定”,则新数据将是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 回答