JSON帮助函数返回对象

时间:2016-11-14 06:58:51

标签: javascript jquery json ajax laravel

我目前正在尝试实现AJAX搜索,在那里我遇到了JSON帮助函数,我现在不知道该怎么办才能摆脱这个问题。

以下是我的努力:

查看

<script>
$(document).ready(function(){
    $("#q").bind("keyup",function(){
       //alert(this.value)
        var search=this.value;
        var str;
        $.ajax({
            url:"/search",
            type:"get",
            data:{q:search},
            dataType:'JSON',
            success:function(result){
              alert(result);
              var obj= JSON.parse(result);
              alert(obj);
              $("#searchdiv").html("<a href='#' onclick='myfunc();return false;'>"+obj[0].name+"</a>");    
            }
         });

         $("#q").on("focusout",function(){
           $("#searchdiv").slideUp();
         });

         $("#q").on("focus",function(){
           $("#searchdiv").slideDown();
         });

   });
});
</script>

控制器

public function index(Request $request)
{
    $query= $request->input('q');
    $search = DB::select('select book_master.book_name,author_profile.author_name from book_master,author_profile where book_master.book_name=? or author_name=?',[$query,$query]);
    return response()->json(array('searchdata'=>$search),200);
}

路线

Route::any('/search','AJAXSearchController@index');

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

 success:function(result) {
   var obj= result;
   $("#searchdiv").html("<a href='#' onclick='myfunc();return false;'>"+obj.searchdata[0].book_name+"</a>");
 }

或使用循环

success:function(result) {
    $.each(result.searchdata,function(i,v){
        $("#searchdiv").append("<a href='#' onclick='myfunc();return false;'>"+v.book_name+"</a>");
    });
 }

select更改为raw

$search = DB::raw('select book_master.book_name,author_profile.author_name from book_master,author_profile where book_master.book_name=? or author_name=?')->setBindings([$query,$query])->get();