Как использовать ajax, а точнее передать данные на нужную страницу через js (сделать запрос при получении координат от браузера).
Как при вызове страницы создать нужные данные "без контента" и их вернуть?
Для чего: получаю текущее местоположение пользователя и, если пользователь разрешил (в браузере), то запускаю скрипт, передав в него координаты, а то возвращает карту гугл с метками и тд. (использую компонент egmaps).
Самый простой способ вернуть чего-нибудь без контента - это тупо echo + exit;
Ну, типа,
public function actionMyaction()
{
$result = '';
...
echo $result; // или что-нибудь типа echo CJSON::encode($result). Лично я люблю json
exit;
}
При этом, правда, не отработает логирование.
Чтобы отработало - заменить exit на Yii::app()->end(), который по сути тот же exit только с обработкой логов. Поскольку при этом Yii может начать сливать логи в выдачу - нужно будет дополнительно настроить компонент CLogRouter.
Полезные всякие штуки:
Проверка на ajax-запрос: Yii::app()->request->isAjaxRequest
рендер только части страницы, вариант 1:
public function actionMyaction()
{
if (Yii::app()->request->isAjaxRequest) {
$this->layout = false;
}
...
$this->render('myTemplate', array(...));
}
рендер только части страницы, вариант 2:
public function actionMyaction()
{
...
$this->renderPartial('myPartialTemplate', array(...));
}