Yii Framework Forum: Как использовать Yii в Ajax - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Как использовать Yii в Ajax Rate Topic: ***** 1 Votes

#1 User is offline   Михаил 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 30-August 12

Posted 30 August 2012 - 02:00 PM

Несколько вопросов:
1. Как использовать ajax, а точнее передать данные на нужную страницу через js (сделать запрос при получении координат от браузера).
2. Как при вызове страницы создать нужные данные "без контента" и их вернуть?

Для чего: получаю текущее местоположение пользователя и, если пользователь разрешил (в браузере), то запускаю скрипт, передав в него координаты, а то возвращает карту гугл с метками и тд. (использую компонент egmaps).

Еще совсем новичек, поэтому нечего не шарю.

Спасибо.
0

#2 User is offline   Charger 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 206
  • Joined: 03-September 11

Posted 02 September 2012 - 06:27 AM

Можно просто на странице написать JS код в тегах <script>, на jQuery:
$.post('/site/getData', {x:3, y:5}, function(data){
    alert(data);
}).error(function(e){ 
    $('#place').html(e.responseText);
});

0

#3 User is offline   ORey 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 447
  • Joined: 20-April 09
  • Location:Moscow, Russia

Posted 05 September 2012 - 02:29 PM

Самый простой способ вернуть чего-нибудь без контента - это тупо echo + exit;

Ну, типа,

public function actionMyaction() 
{
    $result = '';

    ...

    echo $result; // или что-нибудь типа echo CJSON::encode($result). Лично я люблю json
    exit;
}


При этом, правда, не отработает логирование.

Чтобы отработало - заменить exit на Yii::app()->end(), который по сути тот же exit только с обработкой логов. Поскольку при этом Yii может начать сливать логи в выдачу - нужно будет дополнительно настроить компонент CLogRouter.

Полезные всякие штуки:

1. Проверка на ajax-запрос: Yii::app()->request->isAjaxRequest

2. рендер только части страницы, вариант 1:
public function actionMyaction() 
{
    if (Yii::app()->request->isAjaxRequest) {
        $this->layout = false;
    }
    ...

    $this->render('myTemplate', array(...));
}


2. рендер только части страницы, вариант 2:
public function actionMyaction() 
{
    ...

    $this->renderPartial('myPartialTemplate', array(...));
}

Born to create drama
0

#4 User is offline   MOTORIST 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 10-September 12

Posted 10 September 2012 - 02:41 AM

Почитай про renderPartial. Особенно обрати внимание на параметры метода.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users