yii2 krajee dynagrid и select2 - PullRequest
0 голосов
/ 25 мая 2020

Я нуб с проблемой. В визуализированной форме ajax я поместил select2 и dynagrid, я создал функцию, которая возвращает json для заполнения dynagrid, но я хотел бы знать, как сообщить dynagrid о загрузке данных из этой функции. Может быть, с помощью кода мне легче объяснить свою проблему. Это моя внешняя сетка select2

                                        $url = Url::to('index.php?r=tabmodelli/list');
                                        echo $url;
                                        $tmpjava = new JsExpression("function(e) {  var str=e.params.data.text;
                            str=str.replace(e.params.data.id,''); 
                                                   }");
                                        echo $form->field($model, "Modello")->widget(Select2::classname(), [
                                            'options' => ['id' => 'selmodello','multiple' => false, 'placeholder' => 'cerca modello ...'],
                                            'pluginEvents' => [
                                                                                      ],
                                            'pluginOptions' => [
                                                'allowClear' => true,
                                                'minimumInputLength' => 3,
                                                'language' => [
                                                    'errorLoading' => new JsExpression("function () { return 'caricamento dati...'; }"),
                                                ],
                                                'ajax' => [
                                                    'url' => $url,
                                                    'dataType' => 'json',
                                                    'data' => new JsExpression('function(params) { return {q:params.term}; }')
                                                ],
                                                'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
                                                'templateResult' => new JsExpression("function(md) { return md.text; }"),
                                                'templateSelection' => new JsExpression('function (md) { return md.text;}'),
                                            ],
                                        ]);

, и это сетка

   echo DynaGrid::widget([
'columns'=>$columns,
      //      'filterPosition' => FILTER_POS_FOOTER,
'storage'=>DynaGrid::TYPE_COOKIE,
'theme'=>'panel-danger',
'gridOptions'=>[
    'dataProvider'=>$dataProvider,
 //   'filterModel'=>$searchModel,
    'panel'=>['heading'=>'<h3 class="panel-title">Articoli</h3>'],
],
'options'=>['id'=>'dynagrid-1'] ]);

Я также создал функцию java для вызова функции из контроллера, которая возвращает json

$('#selmodello').change(function(){   
var selmodello = $(this).val();
     $.get('index.php?r=articoli/get_md&modello',{ modello : selmodello}, function(data){
    alert(data);
});});

предупреждение работает, я получаю результат функции в текстовом поле, но как я могу поместить их в сетку? Спасибо за помощь и извините за мой engli sh!

...