我目前正在尝试实现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');
答案 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();