2016-11-14 145 views
0

我目前正在尝试实现AJAX搜索,并在那里遇到了JSON帮助函数,现在我不知道该怎么做才能摆脱这个东西。返回对象的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','[email protected]'); 

enter image description here

+0

你的Ajax似乎是工作的罚款,这是什么问题? – madalinivascu

+0

首先,如果在请求中使用dataType,则不需要解析json。那么你能否提供你的请求结果的转储? – GiuServ

+0

您已经意识到浏览器控制台,因此不需要使用'alert()'来检查变量 - 正如您所看到的,它将所有内容都转换为字符串,因此它基本上是无用的。尝试'console.log()'和[朋友](https://developers.google.com/web/tools/chrome-devtools/console/console-reference)。 –

回答

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>"); 
    }); 
} 

变化selectraw

$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(); 
+0

摆脱了这一点,但没有得到任何输出 –

+1

做一个console.log(结果)并粘贴你在控制台这里有什么 – madalinivascu

+0

是在第二个 –