2012-06-29 3 views
1

Я пытаюсь реализовать бесконечный параметр прокрутки. Я использую рамки symfony2.Бесконечный прокрутки ajax jquery

HTML, выглядит следующим образом:

<div id='more' >Loading...</div> 
<div id='no-more' >No more results</div> 
<div id='result'></div> 

Контроллер:

if($request->isXmlHttpRequest()){ 
    $appResult = THIS IN AN ARRAY WITH ALL THE RESULTS ...... 
    $return=array("responseCode"=>400, "appResult"=>$appResult); 
    $return=json_encode($return); 
    return new Response($return,200,array('Content-Type'=>'application/json')); 
} 

И JavaScript:

<script type="text/javascript"> 
     var page = 1; 


     $(window).scroll(function() { 
      $('#more').hide(); 
      $('#no-more').hide(); 


      if($(window).scrollTop() + $(window).height() > $(document).height() - 200) { 
       $('#more').css("top","400"); 
       $('#more').show(); 

      } 
      if($(window).scrollTop() + $(window).height() == $(document).height()) { 

       $('#more').hide(); 
       $('#no-more').hide(); 

       page++; 

       var data = { 
        page_num: page 
       }; 

       var actual_count = 30; 

       if((page-1)* 12 > actual_count){ 
        $('#no-more').css("top","400"); 
        $('#no-more').show(); 
       }else{ 
        $.ajax({ 
         type: "POST", 
         url: "{{ path('login') }}", 
         data:data, 
         success: function(res) { 


WHAT I DO HERE???? 


         } 
        }); 
       } 

      } 


     }); 

</script> 

код прекрасно работает, он посылает запрос и получает массив ответов со всеми результатами. Но я не знаю, что делать с этими результатами, как я могу напечатать их в результате div?

ответ

0

Я предполагаю, что «res» возвращает HTML, и вы хотите, чтобы эти данные вошли в div #result? Если так поместите это в функции успеха:

$('#result').html($(res)); 

или, возможно, просто

$('#result').html(res); 

Если возврат «Рес» является JSON, вам придется разобрать его каким-то образом, а затем поместить его в DIV , Можете ли вы показать нам, каков результат res?

изменения: в том, что это JSON, вы, возможно, придется сделать что-то вроде следующего:

var data = $.parseJSON(res); 
$.each(data, function(index, value) { 
    var currentHTML = $('#result').html(); 
    $('#result').html(currentHTML + this.description); 
}); 
+0

Привет, спасибо за ответ. «Res» представляет собой массив объектов, каждый из которых содержит описание (текст) и userid (integer), и я хочу напечатать их в div результата. Считаете ли вы, что лучший вариант - использовать для a для (var i = 0; i nasy

+0

обновил мой ответ, чтобы дать немного больше идеи – LOLapalooza

Смежные вопросы