2016-05-02 7 views
0

私はCButtonColumnをTbGridView内で使用しました。ボタンをクリックすると、私は受信者にメールを送信したい場所からのダイアログが必要です。 マイadmin.phpコード:yiiのCButtonColumnを使用してダイアログを開く1.1

array(
    'class'=>'CButtonColumn', 
    'template'=>'{dialog}', 
    'buttons'=>array(
    'dialog' => array(
     'label'=>'Email', 
     'imageUrl'=>Yii::app()->request->baseUrl.'/images/email_envelope.png', 
     'url'=>'Yii::app()->createUrl("todoList/OpenMailDialog", array("id"=>$data->to_do_id))', 
     'options'=>array( 
        'ajax'=>array(
          'type'=>'POST', 
          'url'=>"js:$(this).attr('href')", 
          'update'=>'#dialog_id', 
          ), 
        ), 
    ), 
), 
), 
<div class="dialog_id" style="display:none;"></div> 

マイコントローラコードがある:

public function actionOpenMailDialog($id){ 
    $model=$this->loadModel($id); 
    $this->render('createDialog',array('model'=>$model,)); 
} 

マイビューコードは:

<?php 
    $this->beginWidget('zii.widgets.jui.CJuiDialog',array(
      'id'=>'mailDialog', 
      'options'=>array(
       'title'=>'View Message #'. $model->id, 
       'autoOpen'=>true, 
       'modal'=>'true', 
       'width'=>'auto', 
       'height'=>'auto', 
      ), 
      )); 
echo $this->renderPartial('_formDialog', array('model'=>$model)); ?> 
<?php $this->endWidget('zii.widgets.jui.CJuiDialog');?> 

マイ_formDialog:

<div class="form" id="mailDialogForm"> 

    <p class="note">Fields with <span class="required">*</span> are required.</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,'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 class="row buttons"> 
    <?php echo CHtml::submitButton($model->isNewRecord ? 
    'Send' :'Send',array('class' => 'btn')); ?> 
</div> 

ここでダイアログをポップアップできません。解決策は何ですか?

答えて

1

私は単にこのように私のコードをchagedし、その作業now.Myのadmin.phpコードはこのようなものです:、

array(
     'class'=>'CButtonColumn', 
     'template'=>'{dialog}', 
     'buttons'=>array(
      'dialog' => array(
       'label'=>'Email', 
       'imageUrl'=>Yii::app()->request->baseUrl.'/images/email_envelope.png', 
       'visible'=>'$data->user_id===Yii::app()->user->id?false:true', 
       'url'=>'Yii::app()->createUrl("todoList/openMailDialog", array("id"=>$data->to_do_id))', 

    ), 
), 

マイ_formDialog.phpコード:

<div id="mailDialogForm"> 

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'mail-form', 
'enableAjaxValidation'=>true, 
)); 

?> 

<p class="note">Fields with <span class="required">*</span> are required.</p> 

<?php echo $form->errorSummary($model); ?> 
<div class="rowcol"> 
<?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="rowcol"> 
<?php echo $form->labelEx($model,'email_to'); ?> 
<?php echo $form->textField($model,'email_to',array('size'=>60,'maxlength'=>150,'readonly'=>'readonly')); ?> 
<?php echo $form->error($model,'email_to'); ?> 
</div> 
<div style="clear:both"></div> 
<div > 
----------------- 
</div> 
<div class="rowbutton"> 

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

<?php $this->endWidget(); ?> 
</div> 
関連する問題