0

I have a IpModel and second Model is IpSenderScore ,ip_id is foreign key in Ip_history model.

Now I have create a custom button senderscore in Ip admin view like:

           'senderscore' => array(
                    'label'=>'View SenderScore of This IP',
                    'imageUrl'=>Yii::app()->request->baseUrl.'/images/loginhistory.PNG',array("style"=>"width:16px;height:16px;"),
                    'click'=>"function(){  $.fn.yiiGridView.update('user-grid', {
                                                type:'POST',
                                                url:$(this).attr('href'),
                                                success:function(data) {
                                                          $('#AjFlash').html(data).fadeIn().animate({opacity: 1.0}, 3000).fadeOut('slow');           
                                                     $.fn.yiiGridView.update('user-grid');
                                                   }
                                            })
                                            return false;
                                      }
                             ",
                     'url'=>'Yii::app()->createUrl("ipSenderScore/admin",array("ip_id"=>$data->id))',
                ),

I want to when I click on this button then show a modal window with all ip history that is saved in ipSenderScore model with this ip_id.

How it is possible?

4

2 回答 2

1

所以你想要一个模式来通过点击管理按钮来显示你的 CGridView 数据?

在您的按钮视图中粘贴此代码:

       'senderscore'=>array(
                        'imageUrl'=>Yii::app()->request->baseUrl.'/images/loginhistory.PNG',array("style"=>"width:16px;height:16px;"),
                        //'url'=>'Yii::app()->createUrl("ipSenderScore/view/", array("id"=>$data->id,"asDialog"=>1))',                           
                         'url'=>'Yii::app()->createUrl("ipSenderScore/admin",array("ip_id"=>$data->id))',                            
                        'options'=>array(  
                        'ajax'=>array(
                                'type'=>'POST',
                                    // ajax post will use 'url' specified above 
                                'url'=>"js:$(this).attr('href')", 
                                'update'=>'#id_view',
                               ),
                         ),
             ),

关闭小部件后,将此潜水代码粘贴到您当前的管理视图中:

            <div id="id_view" style="display:none;"></div>

在您的 ipSenderScore 控制器中,

               public function actionAdmin()
           {
                 // your model code
                 $this->render('admin',array('model'=>$model,));
               }

在您的 views/ipSenderScore/admin.php 顶部粘贴此 zii 小部件代码:

          <?php
        //------------ add the CJuiDialog widget -----------------

      $this->beginWidget('zii.widgets.jui.CJuiDialog', array( // the dialog
       'id'=>'dlg-address-view',
        'options'=>array(
         'title'=>'View Address #'. $model->id,
         'autoOpen'=>true,
         'modal'=>true,
         'width'=>550,
         'height'=>470,
      ),
      ));

      //-------- default code starts here ------------------
   ?>
    <?php $this->widget('zii.widgets.grid.CGridView', array(
      // your all cgrid view original code paste here

并在页面结束时关闭小部件: endWidget('zii.widgets.jui.CJuiDialog'); ?>

它为我工作。=:)

于 2013-10-01T04:52:34.383 回答
0

您可以有一个控制器和一个自定义操作,您可以在其中发送您的 ajax 数据。在那里实现你的逻辑并返回你在那里获取的数据。

于 2013-09-30T11:53:47.660 回答