从模式中的kartik gridView获取选定的行值,并将其传递给父窗体

时间:2016-09-20 10:17:04

标签: php jquery yii2

我尝试从模态引导程序(包含表kartik gridview)获取值,并且我想将所选值传递给父表单(action create form)。怎么做?请指教。 模态表单包含这样的字段

<?php
$gridColumns = [        
    'id',
    'date',
    [
        'attribute' => 'agen_id',
        'value' => 'agen.agen_name'
    ],
    [
        'attribute' => 'price', 
        'format' => ['decimal', 0],            
    ],
    'remark_1:ntext',
    'remark_2:ntext',

] ?>

这是父母表格中的按钮

<div class="col-xs-8">
        <div class="form-group field-poagen-price"> 
        <br>
        <?= Html::button('Price List', ['value' => Url::to('../pricelist/list'), 'class' => 'btn btn-primary', 'id' => 'BtnModalPriceList']) ?>
        <?php 
            Modal::begin([
                    'header' => 'List Harga',
                    'id' => 'modal',
                    'size' => 'modal-md'
                ]);
            echo "<div id='modalContent'></div>";
            Modal::end();
        ?>
        </div>
    </div>

我按照这个注册我的jquery

$('#BtnModalPriceList').click(function(){
$('#modal').modal('show')
    .find('#modalContent')
    .load($(this).attr('value'));});

我想从modal获取值传递给父级以填充必填字段。 我搜索了几天仍然没有运气。 请高手指教。谢谢。

1 个答案:

答案 0 :(得分:0)

我已经解决了。这就是我做的。 在gridView中创建自定义按钮

[
    'class' => 'yii\grid\ActionColumn',
    'template' => '{select}',
    'buttons' => [
        'select' => function($url, $model, $key){
            return Html::button('Select', [
                'title' => Yii::t('yii', 'Select'),
                'aria-label' => Yii::t('yii', 'Select'),                        
                'class' => 'btn btn-primary select-row',
                'data-id' => $model->id,
            ]);
        },
    ],            
],

然后注册到jquery来处理数据

$(document).on('click', '.select-row', function(){
    // get id from custom button
    var id = $(this).attr('data-id');
    $.get('../pricelist/get-price', {id : id}, function(data){            
            $('#poagen-price').val(data);
        });
        $('#modalPriceList').modal('hide');
        $('#poagen-fee').focus();
});

得到了@ milos-ozegovic的帮助