在yii2 grid EditableColm小部件的ajax调用中传递动态参数

在yii2 grid EditableColm小部件的ajax调用中传递动态参数,yii2,x-editable,yii2-widget,Yii2,X Editable,Yii2 Widget,该小部件有一个名为ajaxSettings的参数,您可以在其中覆盖随ajax请求传递给服务器的参数。我想做的是动态地将选定的行ID和来自popover的值一起传递给服务器。我设法在编译时传递来自php数组的静态参数,如下所示 Editable::widget(['name' => 'publishDate', 'ajaxSettings' => ['ids' => [1,2,3]]]) 但我似乎无法使用jquery选择器来获取所选列的ID Editable::widget([

该小部件有一个名为ajaxSettings的参数,您可以在其中覆盖随ajax请求传递给服务器的参数。我想做的是动态地将选定的行ID和来自popover的值一起传递给服务器。我设法在编译时传递来自php数组的静态参数,如下所示

Editable::widget(['name' => 'publishDate', 'ajaxSettings' => ['ids' => [1,2,3]]])
但我似乎无法使用jquery选择器来获取所选列的ID

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

也许您想尝试在Editable::widget之外创建一个变量([如下所示:

var arrayIds = $("#books-grid").yiiGridView("getSelectedRows");
然后将其分配给小部件:

Editable::widget([
    'name' => 'publishDate', 
    'ajaxSettings' => [
        'ids' => arrayIds
    ]
])
希望这有帮助


Leo.

也许您想尝试在Editable::widget之外创建一个变量([如下所示:

var arrayIds = $("#books-grid").yiiGridView("getSelectedRows");
然后将其分配给小部件:

Editable::widget([
    'name' => 'publishDate', 
    'ajaxSettings' => [
        'ids' => arrayIds
    ]
])
希望这有帮助


Leo.

有趣的问题。需要做一些测试才能找到答案。有趣的问题。需要做一些测试才能找到答案。我试过了,但是ID是动态地来自网格的选中复选框,这似乎打破了ajax调用中对数据参数的覆盖。我相信您需要从yiiGridV转换数组查看索引数组?能否尝试使用此函数将数组转换为索引数组?newArray=$.makeArray(arrayIds);我尝试过,但ID是动态地从网格的选中复选框中获取的,这似乎打破了ajax调用中对数据参数的覆盖。我认为您需要将数组从yiiGridView转换为索引数组?是否可以尝试使用此函数将数组转换为索引数组?newArray=$.makeArray(arrayIds);