yii2:处理gridview的选定行不工作- ajax post是空的
yii2: Process selected rows of gridview not working - ajax post is empty
在我的yii2-app中,我想将机器分配给一个机器组。机器的数量使得用户必须使用带有排序和筛选功能的kartik-gridview(所有机器的列表)的复选框列来选择机器(普通的多选表单字段不提供这些功能)。
要处理网格的选定行,我只找到了使用Javascript的解决方案:http://www.yiiframework.com/forum/index.php/topic/53777-gridview-get-selected-colum/
我在我的按钮中实现了这个:
<?= Html::button(yii::t('app', 'Save'), ['class' => 'btn btn-primary',
'onclick' => "var keys = $('#w0.grid-view').yiiGridView('getSelectedRows');"
. "$.ajax({"
. "type: 'POST',"
. "url: 'http://localhost:8080/eddb1/frontend/web/index.php?r=machine-group/test',"
. "dataType: 'json',"
. "data: {keylist: keys}});"]) ?>
正如你所看到的,我不得不使用$.ajax
而不是$.post
,因为$.post
的url不起作用,我总是得到404未找到-错误。
问题是ajax-post总是空的。按照控制器代码返回post-request:
public function actionTest()
{
echo var_dump(Yii::$app->request->post());
die();
}
我也试过
echo var_dump($_POST);
相同的结果。我哪里做错了?有没有可能处理选定的行没有Javascript?-我试图把gridview在ActiveForm- tags和使用正常的submittButton,但没有发送post-request。
请帮助我,我被困在这里2天了,谢谢!p。:这是gridview-code:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel'=>$searchModel,
'columns' => [
['class' => 'kartik'grid'CheckboxColumn'],
'company_name',
'identifier',
'licenceplate',
'serial_number',
'type_name',
'class_name',
'manufacturer',
'model_name',
'variant_name',
],
'persistResize' => true,
'showPageSummary' => false,
'pjax' => true,
'panel' => [
'before' => ''
],
'toolbar' => [
'{export}',
'{toggleData}'
]
]);
?>
已解决:问题是,"getSelectedRows"返回基于表模型的主键。我的gridview的数据提供程序和搜索模型是基于一个没有主键的MySQL-View,所以这个函数总是返回一个空键数组。
必须使用primaryKey-Function在我的视图模型中设置PK,用GII覆盖我的搜索模型,一切都运行良好(不要忘记将PK声明为数组,即使它是单个属性)。
似乎你的选择器得到的数据是错误的,你可能想尝试这样的东西:
var keys = $(this).parents('.gridview').yiiGridView('getSelectedRows');
这有一个额外的好处,那就是它没有链接到一个不断变化的标识符。w0
部分是由Widget
功能中的计数器创建的,如果碰巧在GridView
之前有其他小部件,则可以更改。这里我尽量避免匹配ID
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Rails-JQueryUIAutcomplete和AJAX不工作,可以't连接到数据库
- jQuery Ajax GET请求工作不正常
- jQuery触发器点击未从AJAX成功工作
- Jquery/Ajax.serialize()未完全工作
- 如何检查这个代码点火器php函数是否工作,该函数是否在ajax url中使用
- XMLHttpRequest在$.ajax工作的地方给出了CORS错误
- 不能让一个简单的Ajax工作
- 无法让我的帖子()使用jQuery Ajax工作
- $.ajax工作不正常-返回index.html
- Jquery AJAX工作,但显示的消息有bug
- AJAX工作,如果chrome开发工具打开,但不如果chrome web工具关闭
- CodeIgniter ajax上传图像(ajax工作,而不是CodeIgniter)
- 需要修改这个jquery弹出菜单脚本与ajax工作
- 任何滑动不与a4j:ajax工作
- jQuery ajax工作一次,但此后每次都通过浏览器加载href
- 无法让ajax工作编码器
- 什么表单标签做时,我想与ajax工作
- Highcharts不是通过AJAX工作的
- 让AJAX工作的问题