2016-11-14 133 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

是在第二個 –