1

無限スクロール オプションを実装しようとしています。symfony2 フレームワークを使用しています。

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 に出力できますか??

4

1 に答える 1

0

「res」が HTML を返していると仮定し、そのデータを #result div に入れたいですか? その場合、これを成功関数内に配置します。

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

またはおそらくただ

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

返された「res」が JSON の場合は、何らかの方法で解析してから div に配置する必要があります。res の結果を教えてください。

編集:JSONであるため、次のようなことをする必要があるかもしれません:

var data = $.parseJSON(res);
$.each(data, function(index, value) {
    var currentHTML = $('#result').html();
    $('#result').html(currentHTML + this.description);
});
于 2012-06-29T17:49:53.767 に答える