用来自jquery ajax post request to server的数据填充div

时间:2015-07-21 16:07:03

标签: jquery ajax laravel response populate

我的视图中有一个jquery函数,它向服务器发送请求:

<script type="text/javascript">
        jQuery(function ($) {
            $(document).ready(function()
            {
                var form = $('form');
                form.submit(function(e){
                    e.preventDefault();
                    $.ajax({
                        url: form.prop('action'),
                        type: 'post',
                        dataType: 'json',
                        data: form.serialize(),
                        success: function(data)
                        {
                            console.log(data);
                        }

                    })
                });

            });
        });
    </script>

路线吐出一系列物体:

Route::post('modelsearch', function () {

    $brand_id = Input::get('brand_id');
    $size_id = Input::get('size_id');

    $models = DB::table('pants_models')
        ->where('brand_id', '=', $brand_id)
        ->Where('size_id', '=', $size_id)
        ->get();

    return Response()->json(array($models));


});

我想操纵返回的数组并将html发布到视图中的#results div。 你如何在回调成功函数中做到这一点?我似乎无法找到答案。

3 个答案:

答案 0 :(得分:1)

不确定你在问什么。您可以在js成功通话中操纵数据。

success: function(data)
{
    //data contains the response from the route. So manipulate the result here and append them to the #results div.
    var html = '';
    for(obj in data){
    //Do stuff to build html
    }
    $('#result div').append(html);
}

答案 1 :(得分:1)

除非我错过了什么,否则这应该可以解决问题。假设您的路线吐出包含result1result2键的数组:

success: function(data)
{
    $('#results').append(
        '<p>Result 1: '+data['result1']+'</p><p>Result 2: '+data['result2']+'</p>';
    );
}

答案 2 :(得分:0)

如果要将数据显示到div中,请使用该数据创建一个字符串,并将该数据附加到#results div中:

var obj = JSON.parse(data);
var resultStr = "";
for(var i=0; i<obj.length; i++){
    resultStr = resultStr + "<div>" + obj[i].column_name + "</div>" ;   
}

$("#results div").html(resultStr);

如果您还有其他任何需要,请告诉我们。