在Yii我有2个型号 - >时间表和档案
我想要实现的目标:在模型计划中,显示一个显示fiches列表的视图。每个fiche都有 一个打开模态窗口的按钮。模态窗口的内容是一个创建档案的表格+显示5个最新的档案。
到目前为止我所拥有的:
viewSchedule.php
<?php $this->renderPartial('_fiches',array(
'schedule'=>$model,
'fiches'=>$fiches,
)); ?>
_fiches.php
<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>"dialogFiche",
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'dossier',
'autoOpen'=>false,
'buttons' => array(
//array('text'=>'Route','click'=> 'js:function(){'.$target.'}'),
array('text'=>'Cancel','click'=> 'js:function(){$(this).dialog("close");}'),
),
'height'=>400,
'width'=>650,
'show'=>'fade',
'hide'=>'fade',
),
));
$this->endWidget('zii.widgets.jui.CJuiDialog');
?>
<?php foreach($fiches as $fiche): ?>
//fiche html ...
<div class="editDossier">
<?php
// the link that may open the dialog
echo CHtml::htmlButton("Edit dossier",
array(
'ajax'=>array(
'url' => CController::createUrl('dossier/getDossierById'), //only if you want an action here
'type' => 'get',
'data' => array(
'id' => $fiche['id'],
'isAjax' => 1,
),
"success" => "function(data){
$('#dialogFiche').html(data);
$('#dialogFiche').dialog('open');
return false;
}",
),
'class'=>'btn btn-primary btn-medium btn2',
),
array('id' => 'get-dossier-'.uniqid())
);
?>
</div>
<?php endforeach; ?>
dossierController.php
public function actionGetDossierById($id){
$dossiersById = dossier::model()->getDossiersById($id, 5);
$fiche = Fiche::model()->findByPk($id);
$dossier = $this->newDossier($fiche);
$myHtml = $this->renderPartial(
'viewDossierInModal',
array(
'dossiers'=>$dossiersById,
'dossier'=>$dossier,
),
true
);
echo $myHtml;
Yii::app()->end();
return;
}
protected function newDossier($fiche)
{
$dossier = new Dossier;
if(isset($_POST['Dossier']))
{
$dossier->attributes = $_POST['Dossier'];
$dossier->fiche_Id = $fiche->id;
if($dossier->save())
{
echo 'succes';
}else{
echo 'failed';
}
}
return $dossier;
}
dossierModal.php
public function getDossiersById($id, $limit = null){
$crit = new CDbCriteria();
$crit->condition = "fiche_Id = :ficheId";
$crit->params = array("ficheId"=>$ficheid);
if(isset($limit)){
$crit->limit = $limit;
}
$crit->order = "datum DESC";
return $this->findAll($crit);
}
在模态中创建档案后,页面会进行重定向,并在新的空白页面上显示表单和最新的5个档案。如何返回我的viewSchedule.php并打开更新内容的模态窗口? 或者是否有另一种,更容易或可能已经在Yii中的解决方案?
答案 0 :(得分:0)
我希望我能帮到你,
使您重定向的代码位于
中actionGetDossierById
$myHtml = $this->renderPartial(
'viewDossierInModal',
array(
'dossiers'=>$dossiersById,
'dossier'=>$dossier,
),
true
);
如果删除或修改$myHtml
,您将能够处理重定向。
同时检查您的newDossier()
功能我认为您错过了&#34; s&#34;在success
,所以你的ajax没有取得成功,但取得了成功......
问候