我正试图在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();?>
答案 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'),
));
}