Я нуб с проблемой. В визуализированной форме 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!