【问题标题】:How to get id in response of Button in the Grid of yii如何在 yii 的 Grid 中响应 Button 获取 id
【发布时间】:2015-10-13 02:48:09
【问题描述】:

我在 Yii 的网格中使用按钮

                                 'change_password' => array(                                
                                            'label' => '<i class="icon-lock"></i>',                                
                                            'options' => array('title' => 'Change password'),                             
                                            'url' => 'Yii::app()->createUrl("user/editPassword",array("id"=>$data->id))', 
                                            'click' => 'function(){  $.get( $(this).attr("href"), function( data ) { 
                                                var response = JSON.parse(data); 
                                                var name = response.user;
                                                if(name  ==""){
                                                    name= "User";
                                                }
                                                $(".passwordheading").text(name);
var id =$(this).parents("tr").attr("id"); alert(id);
                                                $("#password-form #User_id").val(id); 
                                                $("#passwordDiv").show();  

                                            }); return false; }',
                                ),

在这里,我将 id 传递给控制器​​。作为回应,我只得到名字。 我怎样才能从这里得到 id 作为回应。 我试过var id = $data-&gt;idvar id =$(this).parents("tr").attr("id"); 但没有得到价值。

请帮忙。

【问题讨论】:

  • 在您的帖子中添加您的控制器操作。
  • 我不想从控制器中获取它。

标签: php model-view-controller yii


【解决方案1】:

事件click 无权访问$data 属性。你有办法:

  1. 创建第一列 ID 并在不需要时将其隐藏。然后获取id值:

    var id = $(this).parent().parent().children(':first-child').text();

  2. 添加rowHtmlOptionsExpression参数:

    'rowHtmlOptionsExpression' =&gt; 'array("data-id" =&gt; $data-&gt;id)'

然后获取data-id:

var id = $(this).parent().parent().data('id')

【讨论】:

  • 我给了第二个选项。但仍然没有得到回应。行作为
  • 首先检查this 上下文,它必须是您单击的按钮,而不是 $.get() 函数或其他函数的上下文。然后检查父遍历。你需要得到父 tr。
猜你喜欢
相关资源
最近更新 更多
热门标签