0

私はIpModel2番目のモデルを持っていIpSenderScoreます.ip_idはIp_historyモデルの外部キーです。

senderscoreこれで、次のような Ip admin ビューでカスタム ボタンを作成しました。

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

このボタンをクリックすると、この ip_id で ipSenderScore モデルに保存されているすべての IP 履歴を含むモーダル ウィンドウが表示されます。

それはどのように可能ですか?

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 に答える