通过在CButton列中显示一个对话框来编辑CGrid视图中的记录

时间:2013-12-14 12:54:06

标签: javascript php jquery ajax yii

在我的Web应用程序中,我需要使用javascript实现编辑按钮的对话框 和ajax。我的代码适用于ajax但我想显示用于编辑记录的对话框。 我的代码

$this->widget ( 'zii.widgets.grid.CGridView', array (
        'id' => 'store-grid',
        // 'itemsCssClass' => 'table-bordered items',
        'dataProvider' => $model->search (),
        'filter' => $model,
        'columns' => array(
                'id',
                'store_name',
                 'is_deleted',

                 array(
                 'class' =>'CButtonColumn',
                     'class'=>'CButtonColumn',
        'deleteConfirmation'=>"js:'Do you really want to delete record with Store name '+$(this).parent().parent().children(':nth-child(2)').text()+'?'",

                 'template'=> '{view}{update}{delete}',
                 'buttons'=>array
                 (
                 'view'=>

                 array(
                 'options'=>array(
                 'ajax'   =>array(
                 'type' =>'POST',
                 'url'  => "js:$(this).attr('href')",
                 'update' => '#id_view',
                 ),
                   ),
                   ),

                 'update'=> array
                  (
                  'options' =>array(
                  'ajax'   =>array(
                   'type'   =>'POST' ,
                   'url'    =>"js:$(this).attr('href')",
                   'click'  =>"function(){alert("js:$(this).attr('href')"}",
                    'update'=>'#id_view',

       ),
    ),

                    ),
                    ),
                    ),
        ),                             



                  )
        );









?>
<div id="id_view"></div>

如果我使用click函数然后在“alert”函数中给出url,我会收到错误。有什么方法可以在javascript函数中使用“($ this)”来提供对象的详细信息正常。任何身体帮我这个我无法继续。我在这行代码中遇到错误

'click'  =>"function(){alert("js:$(this).attr('href')"}",

我应该如何使用javascript实现这一点? 这是小部件的html输出

    <div class="span-19">
    <div id="content">
        <ul class="breadcrumb"><li><a href="/stores2/"><i class="icon-home"></i></a><span class="divider">/</span></li><li><a href="#">manage</a><span class="divider">/</span></li><li><a href="index">Stores</a><span class="divider">/</span></li></ul>
<div id="dialogUpdatestore">
<div class="divStore"></div>

 </div>

2 个答案:

答案 0 :(得分:0)

变化

 'click'  =>"function(){alert("js:$(this).attr('href')"}",

 'click'  =>"js:function(){alert("$(this).attr('href')"}",

或者这不确定:D

 'click'  =>"function(){alert("$(this).attr('href')"}",

答案 1 :(得分:0)

我想你可能会把你的引号混淆了。尝试将其更改为:

'click'  =>"function(){alert($(this).attr('href')}",