如何在div中显示AJAX响应数据

时间:2016-11-16 12:56:34

标签: javascript jquery laravel-5.2

我正在使用Laravel框架。我对此感到困惑。我成功获得数据。但是,当我想显示数据时,它会以数组形式显示数据。任何人都可以帮我如何显示列表。我在div

中有一个布局
<div class="col-md-9 col-sm-9  col-xs-12" id="ajaxListings">
    @include('layouts.publicLayout.get-listings')// here i have implemented layout
</div>

function filteredlistings(){
        $.ajax({
            url:'search-listings',
            data:{
                'service_name':title,
                'location':location
            },
            type:"get",
            success:function(allData)
            {
                $("#ajaxListings").html(allData);
            },
            error: function()
            {
                alert('error');
            }
        });
    }

这是我的功能:

public function search_listings(Request $request){
    if($request->ajax()){
        $data = $_GET;
        $users = DB::table('users')
        ->join('business_services', 'users.id', '=', 'business_services.user_id')
        ->join('listings','users.id', '=', 'listings.user_id')
        ->select('users.id', 'business_services.name', 'business_services.list_id','listings.location')
        ->where(['business_services.name'=>$data['service_name'],'users.service_name'=>"Seller"])
        ->where('listings.location','like','%'.$data['location'].'%')
        ->get();
        $users = json_decode(json_encode($users),true);
        foreach($users as $alluser){
            $ids[] = $alluser['id']; 
        }
        $allData="";
        if(!empty($ids)){
                $allData = User::with('listings')->whereIn('id',$ids)->get();
                $allData = json_decode(json_encode($allData),true);
        }
        $title = "Nails";
        echo "<pre>"; print_r($allData); die;
    }
}

enter image description here

2 个答案:

答案 0 :(得分:1)

你想要返回布局+数据的Iguess,所以你可以使用:

        <option value="0" ></option>
        <option value="1" >check-out-and-edit</option>
        <option value="2" disabled>undo-checkout</option>

而不是:

return view('layouts.publicLayout.get-listings',compact('allData'));

您可以使用echo "<pre>"; print_r($allData); die; 在布局中访问您的数据。

希望这有帮助。

答案 1 :(得分:0)

问题在于:

echo "<pre>"; print_r($allData); die;

而不是print_r,将数据作为JSON返回,以便jQuery可以解析它:

return response()->json($allData);

然后在你的jQuery成功函数中,你可以迭代数据

success:function(allData)
{
    // simple example showing the firstnames
    var example = '';
    $.each(allData, function(){
       example += ', ' + this.firstname;
    });
    $("#ajaxListings").text(example);
},