2016-10-07 92 views
1

\kartik\grid\EditableColumn小部件具有一个名为ajaxSettings的参数,您可以在其中覆盖通过ajax请求传递给服务器的参数。我想要做的是动态地将选定的行ID与来自弹出窗口的值一起传递到服务器。我设法做从PHP数组来在编译的时候,像这样在yii2-grid EditableColum小部件的ajax调用中传递动态参数

Editable::widget(['name' => 'publishDate', 'ajaxSettings' => ['ids' => [1,2,3]]]) 

是通过静态的参数,但似乎我不能使用jQuery选择那里抢选定列的ID,像这样

Editable::widget([ 
    'name' => 'publishDate', 
    'ajaxSettings' => [ 
     'ids' => '$("#books-grid").yiiGridView("getSelectedRows")' 
    ] 
]) 
+0

有趣的问题。需要做一些测试来找出答案。 –

回答

0

也许你想尝试创建可编辑::小部件之外(可变[这样的:

var arrayIds = $("#books-grid").yiiGridView("getSelectedRows"); 

然后将其分配到窗口小部件:

Editable::widget([ 
    'name' => 'publishDate', 
    'ajaxSettings' => [ 
     'ids' => arrayIds 
    ] 
]) 

希望这有助于

狮子座。

+0

我试过了,但IDs是从网格的选定复选框动态发出的,这似乎打破了Ajax调用中数据参数的覆盖。 – silintzir

+0

我相信你需要将数组从yiiGridView转换为索引数组?你可以尝试使用这个函数将数组转换为索引数组吗? newArray = $ .makeArray(arrayIds); – Leo