0

renderPartial を使用して別のフォームのコンテンツをロードする CJUIDialog があります。そのフォームには、別のフォームをロードする ajax ボタンがあります。そのフォームには、ダイアログ自体の中に前のフォームをロードする必要がある別の ajax ボタンが含まれています。私はこのようにしてみました。しかし、うまくいきません。私のコントローラーには、このような2つのフォームを出力する2つのメソッドがあります。

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');

最初に 1 つのフォーム コンテンツをロードします。

最初の遷移は適切に行われます。しかし、html コンテンツを置き換えた後、他のビューをロードするための 2 番目のトランジションは発生しません。

誰か助けてくれる人がいたら教えてください。

ありがとう

4

1 に答える 1

0

-関数の 4 番目のパラメーターを設定してみてくださいrenderPartial(string $view, array $data=NULL, boolean $return=false, boolean $processOutput=false)。true に設定$processOutputすると、必要なすべてのスクリプト (ajax-button-機能を有効にするスクリプトを含む) が含まれて実行されます。

于 2012-06-29T22:25:46.637 に答える