Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从gridview中的checkboxcolumn获取多个数据_Javascript_Jquery_Yii2_Yii2 Basic App - Fatal编程技术网

Javascript 如何从gridview中的checkboxcolumn获取多个数据

Javascript 如何从gridview中的checkboxcolumn获取多个数据,javascript,jquery,yii2,yii2-basic-app,Javascript,Jquery,Yii2,Yii2 Basic App,这是我的gridview。我想将键和文本输入发送到控制器,以便将值再次发送到同一页面中的另一个gridview 'columns' => [ [ 'class' => 'yii\grid\CheckboxColumn', 'checkboxOptions' => function($model) { return ['value' => $model->m_id, 'data' => ['key'

这是我的gridview。我想将键和文本输入发送到控制器,以便将值再次发送到同一页面中的另一个gridview

'columns' => [
    [
        'class' => 'yii\grid\CheckboxColumn',
        'checkboxOptions' => function($model) {
            return ['value' => $model->m_id, 'data' => ['key' => $model->m_id]];
        }
    ],
    'm_name',
    [
        'label' => 'จำนวน',
        'value' => function(){
            return Html::textInput('od_amount', null, ['id' => 'od_amount']);

        },
        'format' => 'raw'
    ],
    <?php
    $this->registerJs('
        $("#btn-add-group").click(function(){
            var id_cases = $("#gridview-id").yiiGridView("getSelectedRows"); 
    ?>
“列”=>[
[
'class'=>'yii\grid\CheckboxColumn',
“checkboxOptions”=>函数($model){
返回['value'=>$model->m_id,'data'=>['key'=>$model->m_id]];
}
],
“m_name”,
[
'标签'=>'จำนวน',
'值'=>函数(){
返回Html::textInput('od_amount',null,['id'=>'od_amount']);
},
'格式'=>'原始'
],

getSelectedRows
只返回键。您可以尝试获取网格容器中的所有“选中”复选框,如下所示:

$("#gridview-id").find('[type="checkbox"]:checked').each(function(){ console.log(this); })
因此,您应该能够使用
$(this).data('key')
$(this).attr('value')
代替
控制台.log


这将假定您只有一个复选框列,但如果您有更多复选框列,则可以向一个复选框列添加一个类,然后在jQuery选择器中使用该类。

getSelectedRows
只返回键。您可以尝试按如下方式获取网格容器中的所有“选中”复选框:

$("#gridview-id").find('[type="checkbox"]:checked').each(function(){ console.log(this); })
因此,您应该能够使用
$(this).data('key')
$(this).attr('value')
代替
控制台.log


这将假设您只有一个复选框列,但是如果您有更多的复选框列,您可以向一个复选框列添加一个类,然后在jQuery选择器中使用该类。

如果您想在控制器中获取键

例如:

<?=Html::beginForm(['Gridselected'],'post');?>    
<?= GridView::widget([
    'id' => 'griditems',
    'dataProvider' => $dataProvider,
    'columns' => [
        'id',

      [
        'label' => 'จำนวน',
        'value' => function ($model, $key, $index) {
            return Html::textInput("od_amount[$key]", null, ['id' => "od_amount[$key]"]);
        },
        'format' => 'raw'
      ],

       //...
        ['class' => 'yii\grid\CheckboxColumn'],
    ],

]); ?>

<?=Html::submitButton('Send', ['class' => 'btn btn-primary']);?>
<?= Html::endForm();?>

如果你想把钥匙放在控制器里

例如:

<?=Html::beginForm(['Gridselected'],'post');?>    
<?= GridView::widget([
    'id' => 'griditems',
    'dataProvider' => $dataProvider,
    'columns' => [
        'id',

      [
        'label' => 'จำนวน',
        'value' => function ($model, $key, $index) {
            return Html::textInput("od_amount[$key]", null, ['id' => "od_amount[$key]"]);
        },
        'format' => 'raw'
      ],

       //...
        ['class' => 'yii\grid\CheckboxColumn'],
    ],

]); ?>

<?=Html::submitButton('Send', ['class' => 'btn btn-primary']);?>
<?= Html::endForm();?>

我试过你的方法但不起作用你能看看我的吗?我试过你的方法但不起作用你能看看我的吗?