Ajax json и Yii2

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
ankaniti
Сообщения: 95
Зарегистрирован: 2012.03.26, 15:15

Ajax json и Yii2

Сообщение ankaniti »

Не могу найти в документации, как в yii2 вернуть из ajax-запроса данные в json формате.

на первой так делаю:

Код: Выделить всё

 public function actionGetxy()
   {
         $city = $_POST['add'];
         $c = City::find()->where(['name' => $city])->one();
        [b]  echo CJSON::encode(array(
               'xy' => $c->xy,
            ));  [/b] 
   } 
Как на второй?
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Ajax json и Yii2

Сообщение andrei.obuhovski »

return Json::encode()
ankaniti
Сообщения: 95
Зарегистрирован: 2012.03.26, 15:15

Re: Ajax json и Yii2

Сообщение ankaniti »

Вот код, можете подсказать где ошибка:

Код: Выделить всё

$('#account-city_name').change(function(){
  var vl = $('#account-city_name').val();
  $.ajax({  type: 'POST',
                url: '/profile/default/getxy',
               dataType: 'json',
               beforeSend: function(request) {},
               data: { add : vl },
               success: function(msg){  alert(msg.xy);    });
    },
         'error':function() {         alert('Произошла ошибка!');   },
         'cache':false
      });
 });  

А в контроллере:

Код: Выделить всё

public function actionGetxy()
{
$city = $_POST['add'];
$c = City::find()->where(['name' => $city])->one();
 $xy = $c->xy; 
 return Json::encode($xy);
} 
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Ajax json и Yii2

Сообщение andrei.obuhovski »

Открой firebug и посмотри что приходит
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Ajax json и Yii2

Сообщение Onotole »

ankaniti писал(а):Вот код, можете подсказать где ошибка:

Код: Выделить всё

$('#account-city_name').change(function(){
  var vl = $('#account-city_name').val();
  $.ajax({  type: 'POST',
                url: '/profile/default/getxy',
               dataType: 'json',
               beforeSend: function(request) {},
               data: { add : vl },
               success: function(msg){  alert(msg.xy);    });
    },
         'error':function() {         alert('Произошла ошибка!');   },
         'cache':false
      });
 });

А в контроллере:

Код: Выделить всё

public function actionGetxy()
{
$city = $_POST['add'];
$c = City::find()->where(['name' => $city])->one();
 $xy = $c->xy; 
 return Json::encode($xy);
}

Код: Выделить всё

public function actionGetxy()
{
    Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
    $city = $_POST['add'];
    $c = City::find()->where(['name' => $city])->one();
    $xy = $c->xy; 
    return $xy; // Если $xy - это конечно массив
}
 
Аватара пользователя
irpsv
Сообщения: 65
Зарегистрирован: 2015.07.07, 18:03
Контактная информация:

Re: Ajax json и Yii2

Сообщение irpsv »

ankaniti писал(а):Вот код, можете подсказать где ошибка:

Код: Выделить всё

$('#account-city_name').change(function(){
  var vl = $('#account-city_name').val();
  $.ajax({  type: 'POST',
                url: '/profile/default/getxy',
               dataType: 'json',
               beforeSend: function(request) {},
               data: { add : vl },
               success: function(msg){  alert(msg.xy);    });
    },
         'error':function() {         alert('Произошла ошибка!');   },
         'cache':false
      });
 }); 

А в контроллере:

Код: Выделить всё

public function actionGetxy()
{
$city = $_POST['add'];
$c = City::find()->where(['name' => $city])->one();
 $xy = $c->xy; 
 return Json::encode($xy);
} 
В контроллере лучше наверное так:

Код: Выделить всё

public function actionGetxy()
{
    $city = $_POST['add'];
    $c = City::find()->where(['name' => $city])->one();
    //
    $res = \Yii::$app->getResponse();
    $res->format = \yii\web\Response::FORMAT_JSON;
    $res->data = $c->xy;
    $res->send(); // либо return $res;
}
...то что мы не понимаем, делает нас тупее...
ankaniti
Сообщения: 95
Зарегистрирован: 2012.03.26, 15:15

Re: Ajax json и Yii2

Сообщение ankaniti »

irpsv, спасибо, то что нужно
Ответить