【问题标题】:Issue to open dialog: Yii打开对话框的问题:Yii
【发布时间】:2015-11-20 07:00:48
【问题描述】:

我在我的表单中使用了 ajaxSubmitButton。单击按钮时我试图打开对话框当我单击按钮时,对话框打开并显示为该表单编写的整个代码。如何解决?

我的按钮代码是:

<div class="btnalign" style="margin-top: 20px;margin-left:20px;">

    <?=CHtml::ajaxSubmitButton('Mail to Client', Yii::app()->createUrl('reply/composeMail'),
        array('type'=>'POST',
              'data'=> 'js:{"data1":callData()}',
            //'success' => 'function(response){afterSubmitForm(response);}'
              'success'=>'js:function(string){ alert(string);$.fn.yiiGridView.update("my-grid"); }'
        ),

        array('class' => 'btn btn-primary'));
    ?>

</div>

我的控制器代码:

public function actionComposeMail()
{
if(Yii::app()->request->isAjaxRequest){ 
    print_r($_POST['data1']);
        if(isset($_POST['data1'])){
            $model=new Reply;
            $model->scenario = 'compose';

            EQuickDlgs::render('_compose',array(
            'model'=>$model,
            ));
            }else{
            echo "Please select row to Mail.";
        }
    }
    else
    {
        echo "The request is invalid.";
    }
}

我的对话框表单代码是:

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'reply-form',
    'enableAjaxValidation'=>true,
'htmlOptions' => array('enctype' => 'multipart/form-data'), 
 )); ?>

<p class="note">Fields with <span class="required">*</span> are required.For multiple recipients please seperate by comma</p>

<?php echo $form->errorSummary($model); ?>



<div class="row col2">
    <?php echo $form->labelEx($model,'email_from'); ?>
    <?php echo $form->textField($model,'email_from',array('size'=>50,'maxlength'=>50,'readonly'=>'readonly')); ?>
    <?php echo $form->error($model,'email_from'); ?>
</div>

<div class="row col2">
    <?php echo $form->labelEx($model,'email_to'); ?>
    <?php echo $form->textField($model,'email_to',array('size'=>60,'maxlength'=>150)); ?>
    <?php echo $form->error($model,'email_to'); ?>
</div>
<div style="clear:both"></div>

<div class="row col2">
    <?php echo $form->labelEx($model,'email_cc'); ?>
    <?php echo $form->textField($model,'email_cc',array('size'=>60,'maxlength'=>250)); ?>
    <?php echo $form->error($model,'email_cc'); ?>
</div>

<div class="row col2">
    <?php echo $form->labelEx($model,'subject'); ?>
    <?php echo $form->textField($model,'subject',array('size'=>60,'maxlength'=>250)); ?>
    <?php echo $form->error($model,'subject'); ?>
</div>
<div style="clear:both"></div>

<div class="row">
    <?php echo $form->labelEx($model,'message'); ?>
    <?php echo $form->textArea($model,'message',array('rows'=>6, 'cols'=>50)); ?>
    <?php echo $form->error($model,'message'); ?>
</div>

<div style="clear:both"></div>

<div style="clear:both"></div>
<div class="row buttons">
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Send' :         'Send',array('class' => 'btn')); ?>
  </div>

<?php $this->endWidget(); ?>

对话框图片

【问题讨论】:

    标签: yii dialog


    【解决方案1】:

    您必须使用renderPartial() 而不是render() 并尝试在邮件表单视图的末尾调用Yii::app()-&gt;end()

    public function actionComposeMail()
    {
    if(Yii::app()->request->isAjaxRequest){ 
        print_r($_POST['data1']);
            if(isset($_POST['data1'])){
                $model=new Reply;
                $model->scenario = 'compose';
    
                $this->renderPartial('_compose',array(
                'model'=>$model,
                ));
                }else{
                echo "Please select row to Mail.";
            }
        }
        else
        {
            echo "The request is invalid.";
        }
    }
    

    【讨论】:

    • 查看更新的代码...忘记使用$this而renderPartial
    猜你喜欢
    • 2018-05-03
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多