0

特定の関連セル値の yii グリッドビューで ajax を介して loader.gif beforesend 関数を表示するという問題に直面しています。ここに私のグリッドビューがあります。

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'deals-grid',
'dataProvider'=>$model->mersearch(),

'columns'=>array(
    'title',
    'description',
    array('header'=>'Valid Till','name'=>'valid','value'=>$data->valid),
    array('name' => 'status',
                'value'=>array($this,'getStatus'),
                'filter' => $active,'sortable'=>TRUE,
                'htmlOptions'=>array('class'=>'status'),
                ),
    array
            (   
            'name'=>'image',
                 'type'=>'image',
                            'value'=>array($this,'imagePath'),
                            'htmlOptions'=>array('class'=>'thumb','rel'=>'gallery'),
            ),
 array(
'class'=>'CButtonColumn',
'buttons'=>array
(

  'mail' => array
    (   
  'label'=>'mail',
  'imageUrl'=>Yii::app()->request->baseUrl.'/images/mail.png',
  'url'=>'Yii::app()->createUrl("deals/sendmail", array("id"=>$data->id))',
  'options' => array( 'ajax' => array('url'=>'js:$(this).attr("href")',
'beforeSend'=>'function(){
 var obj= $(".mail");
  obj.parent().parent().find(".status").replaceWith("<td class=\"status\"><img src=\"/images/loading.gif\"></td>");}',
                                                                'success'=>'function(data){$(".status").html("Mail Sent Successfully.")
                                                                    }',
                                    ),
                                                     'class'=>'mail',
                                    )),                                 

        ),
         'template'=>'{update}{delete}{mail}',
    ),
),
)); ?>

主な問題は、sendmailボタンをクリックすると、すべての親ステータスクラスセルがloading.gifに置き換えられますが、すべてではなく、その行ステータスセルのみを置き換えたいということです。

4

1 に答える 1

0

使用するとき

var obj= $(".mail");

それぞれのセルに「メール」クラスがあるため、すべてのセルを取得します。

クリックされたものだけを取得する必要があります。試す

var obj= $(this);

私はテストしていません、それはアイデアです。

于 2013-07-09T13:58:13.877 に答える