2013-07-20 70 views
0

我正在嘗試進行動態搜索。當用戶在輸入字段中輸入字符時,結果會從模型中返回。我沒有得到使用此代碼的結果:在jQuery和Laravel中使用getJSON進行動態搜索4

//here is my HTLML: 
<input type='text' placeholder='Search By Email' class='searchterm' > 

//here is my jQuery: 
$(".searchterm").keyup(function(e){ 
    var q = $(".searchterm").val(); 
    $.getJSON("searchpeeps", 
    { 
    q: q, 
    }, 
    function(data) { 
    $("ul.peepList").empty(); 
    $("ul.peepList").append(" Results for <b>" + q + "</b>"); 
    $.each(data.query.search, function(i,item){ 
     $("ul.peepList").append("<li>"++"</li>"); 
    }); 
    }); 
}); 


//here is my get route: 
Route::get('searchpeeps/{q}', array('as' => 'searchpeeps', 'uses' => '[email protected]')); 


//here is my controller: 
    public function searchpeeps($id) 
    { 

     $uid = Auth::user()->id; 
     //$q = Input::get('q'); 
     return Invite::where('email', $id) 
     ->where('user_id', $uid)  
     ->orderBy("created_at", "desc") 
     ->groupBy('email') 
     ->get(); 
    } 

回答

0

您沒有註冊正確的URL。 兩個解決這個問題&的方式寫了一個小的代碼以便更好地理解(它調整到您的需要)

1.調整PHP

// Here, modified URL 
Route::get('searchpeeps', function(){ 
    return Input::get('q'); 
}); 

使用此Javascript

$(".searchterm").keyup(function(e){ 
    $.getJSON(
     "searchpeeps", 
     { q: this.value }, 
     function(data) { 
      console.log(data); 
     } 
    ); 
}); 

2.調整Javascript

$(".searchterm").keyup(function(e){ 
    $.getJSON(
     "searchpeeps/" + this.value, 
     null, 
     function(data) { 
      console.log(data); 
     } 
    ); 
}); 

... with this PHP

Route::get('searchpeeps/{q}', function($q){ 
    return $q; 
});