Запрос на контроллер через ajax и вывод в renderPartial

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Запрос на контроллер через ajax и вывод в renderPartial

Сообщение crows »

Есть такой код:

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

window.onload=function(){
    window.setTimeout(
    function()
    {
        window.addEventListener(
        "popstate",
        function(e) {
            $('#current_page').attr('href', window.location.pathname);
            var goURL = $('#current_page').attr('href');
            alert(goURL);
            $.ajax({
                url: goURL,
                cache: false,
                success: function(){
                    alert('DONE!');
                }
            });
            e.preventDefault();
        },
        false
    );
    },
    1);
}
Примеры значений goURL: /, /id69, /events/, /messages/ Т. е. это контроллеры на сайте

Как сделать так, чтобы вызывался этот контроллер и renderPartial, который есть в нем, срабатывал? Чтобы контент обновился без перезагрузки страницы.
Аватара пользователя
prosto
Сообщения: 32
Зарегистрирован: 2013.03.15, 06:51

Re: Запрос на контроллер через ajax и вывод в renderPartial

Сообщение prosto »

Ну наверно сделать это можно реализовав контроллер и соответствующий экшен, а затем полученные данные вывести при помощи js.
В чем проблема то не понятно?
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Re: Запрос на контроллер через ajax и вывод в renderPartial

Сообщение crows »

prosto писал(а):Ну наверно сделать это можно реализовав контроллер и соответствующий экшен, а затем полученные данные вывести при помощи js.
В чем проблема то не понятно?
Контроллер и соответствующий экшн в нем, естественно, есть :) Проблема описана выше ;)
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Re: Запрос на контроллер через ajax и вывод в renderPartial

Сообщение crows »

Мне нужно с помощью этого куска:

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

$.ajax({
                url: goURL,
                cache: false,
                success: function(){
                    alert('DONE!');
                }
}); 
сделать динамическое обновление контента на странице

чтобы выполнилось это:

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

            if(Yii::app()->request->isAjaxRequest)
            {
                $this->renderPartial('index', array('user' => $user, 'isIam' => $isIam, 'statuses' => $statuses, 'friends' => $friends, 'categories' => $categories, 'images' => $images, 'videos' => $videos), null, true, true);
            } 
Соответсвенно goURL - это адрес страницы (контроллера), который мне нужен
Аватара пользователя
prosto
Сообщения: 32
Зарегистрирован: 2013.03.15, 06:51

Re: Запрос на контроллер через ajax и вывод в renderPartial

Сообщение prosto »

ну в приведенном тобой примере , в случае успеха вылезет мессадж бокс с текстом "Done", если нужно вывести данные, то в коде js пишешь

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

success: function(data){
                    $("#mydiv").html(data);
                }
а в html страницы создаешь

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

<div id="mydiv"></div>
 
и в него будут записаны данные.

Если не пашет, ставишь firebag в браузере жмешь F12 и смотришь, что приходит в ответ на твой ajax запрос.
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Re: Запрос на контроллер через ajax и вывод в renderPartial

Сообщение crows »

prosto писал(а):ну в приведенном тобой примере , в случае успеха вылезет мессадж бокс с текстом "Done", если нужно вывести данные, то в коде js пишешь

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

success: function(data){
                    $("#mydiv").html(data);
                }
 
а в html страницы создаешь

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

<div id="mydiv"></div>
и в него будут записаны данные.

Если не пашет, ставишь firebag в браузере жмешь F12 и смотришь, что приходит в ответ на твой ajax запрос.
Спасибо! То, что нужно. Работает. :)
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Re: Запрос на контроллер через ajax и вывод в renderPartial

Сообщение crows »

Я просто не сориентировался, что там может возвращаться полностью вьюшка... :)
lexust4
Сообщения: 4
Зарегистрирован: 2013.08.11, 06:45

Re: Запрос на контроллер через ajax и вывод в renderPartial

Сообщение lexust4 »

Доброго времени всем ...!
Ребята подскажите как можно на загрузке страницы обратиться к контроллеру и получить в определенные div результат. Речь идет о корзине с товарами.
Я использую вот это:

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

$(document).ready(function(){
        $.ajax({
            type: "POST",
            url: <?php echo CController::createUrl('ShtOrders/GetOrder')?>,
            success: "js:function(data){
                    alert(data);                                                     
              }" 
        })
    })
Но что-то не шибко оно работает.
Аватара пользователя
ToxaDR
Сообщения: 87
Зарегистрирован: 2012.06.26, 23:03

Re: Запрос на контроллер через ajax и вывод в renderPartial

Сообщение ToxaDR »

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

$(document).ready(function(){
        $.ajax({
            type: "POST",
            url: "<?php echo CController::createUrl('ShtOrders/GetOrder')?>",
            success: function(data){
                    alert(data);                                                     
              }
        })
    })
Ответить