因此,我一直在努力为我目前正在开展的项目创建一个实时搜索栏。我一直在关注本指南:https://www.youtube.com/watch?v=y9WKRlJ1JGM
但是对我来说不行,经过大量测试后我可以放心地说AJAX请求被发送到正确的控制器,并且正在执行必要的数据库查询。但没有任何东西被送回页面。我已经在这一整天了,似乎找不到任何类似问题的文章。我也没有得到任何错误信息,它只是没有做任何事情。
以下是我的一些代码:
Javascript
$('#searchbox').on('keyup', function(){
$value = $(this).val();
//alert($value);
$.ajax({
type: 'get',
url: 'livesearch',
data: {'search':$value},
succes:function(data){
alert(data);
}
});
})
路线:
Route::get('livesearch','AjaxController@livesearch');
控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\User;
class AjaxController extends Controller {
public function livesearch(Request $request) {
if ($request->ajax())
{
$output = '';
$searchresults = User::where('firstname', 'LIKE', '%' . $request->search . '%')->orWhere('lastname', 'LIKE', '%' . $request->search . '%')->get();
//print_r($searchresults);
if($searchresults)
{
foreach ($searchresults as $key => $searchresult) {
$output .= $searchresult->firstname .
' ' .
$searchresult->lastname .
' | ' .
$searchresult->company .
'<br>';
}
//return $output;
return Response($output);
//return Response::json(['data' => $output]);
}
}
}
}
请忽略评论的代码,我用它来测试我的代码失败的地方。正如我所说:一切似乎都达到了控制器必须发回响应的程度。
我真的希望你们中的一些人可以帮助我。 提前谢谢!
答案 0 :(得分:2)
$('#searchbox').on('keyup', function(){
$value = $(this).val();
//alert($value);
$.ajax({
type: 'get',
url: 'livesearch',
data: {'search':$value},
succes:function(data){
alert(data);
}
});
})
您的回调是“成功”,但实际上您必须使用“成功”。