在CJUIDialog中使用Ajax

时间:2012-06-29 13:31:23

标签: php yii

我有一个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内容后,第二次转换加载其他视图不会发生。

如果有人可以提供帮助,请告诉我。

由于

1 个答案:

答案 0 :(得分:0)

尝试设置renderPartial(string $view, array $data=NULL, boolean $return=false, boolean $processOutput=false) - 功能的第4个参数。通过将$processOutput设置为true,将包含并执行所有必需的脚本(包括启用ajax按钮功能的脚本)。