我有一个CJUIDialog,我使用renderPartial加载另一个表单的内容。在那种形式中有一个ajax按钮,它可以加载另一种形式。该表单包含另一个ajax按钮,我需要在对话框本身中加载前一个表单。我试过这样做。但它不起作用。 在我的控制器中,我有两种方法可以打印出这样的两种形式。
public function actionNewRecipients(){
$customer = new Customer;
$address = new Address;
$content = $this->renderPartial('_form_new',array('customer'=>$customer,'address'=>$address,'guest'=>true),true);
echo $content;
}
public function actionAddRecipients()
{ $content = $this->renderPartial('_form_inner',array(),true);
echo $content;}
然后以一种形式我有ajax按钮,
echo CHtml::ajaxSubmitButton(Yii::t('New','New Recipient'),CHtml::normalizeUrl(array('customer/newRecipients')),array('success'=>'js: function(data) {
alert("new");
$("#dialog_gift").html(data);
$("#dialog_gift").dialog("option","title","Select Recipient");
}'));
在另一种形式中,我有像ajax一样的按钮,
echo CHtml::ajaxSubmitButton(Yii::t('New','New Recipient'),CHtml::normalizeUrl(array('customer/addRecipients')),array('success'=>'js: function(data) {
alert("select");
$("#dialog_gift").html(data);
$("#dialog_gift").dialog("option","title","Select Recipient");
//$("customer-form_inner").attr("action","'.CHtml::normalizeUrl(array('customer/newRecipients')).'")
}'));
CJUIDialog看起来像,
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'dialog_gift',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>$title,
'autoOpen'=>false,
'modal'=>true,
'scrolling'=>'no',
'resizable'=>false,
'scrollable'=>false,
'closeOnEscape' => true,
),
));
echo '<div class="span-24">';
echo $content;
echo '</div>';
$this->endWidget('zii.widgets.jui.CJuiDialog');
我最初会加载一个表单内容。
第一次过渡恰当。但是在我替换html内容后,第二次转换加载其他视图不会发生。
如果有人可以提供帮助,请告诉我。
由于
答案 0 :(得分:0)
尝试设置renderPartial(string $view, array $data=NULL, boolean $return=false, boolean $processOutput=false)
- 功能的第4个参数。通过将$processOutput
设置为true,将包含并执行所有必需的脚本(包括启用ajax按钮功能的脚本)。