Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
-
ankaniti
- Сообщения: 95
- Зарегистрирован: 2012.03.26, 15:15
Сообщение
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]
}
Как на второй?
-
ankaniti
- Сообщения: 95
- Зарегистрирован: 2012.03.26, 15:15
Сообщение
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);
}
-
Onotole
- Сообщения: 1808
- Зарегистрирован: 2012.12.24, 12:49
Сообщение
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
-
Контактная информация:
Сообщение
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;
}
...то что мы не понимаем, делает нас тупее...