现在它没有显示任何数据;
控制台:finished loading: GET "http://todolist.local/teachers/search?text=a".
当用户在搜索中键入某些内容时,我正在尝试在 tbody 中显示结果。
阿贾克斯代码:
<script>
$(document).ready(function(){
$('#searchname').on('keyup', function(){
var text = $('#searchname').val();
$.ajax({
type:"GET",
url: 'teachers/search',
data: {text: $('#searchname').val()},
success:function(data){
$('tbody').html(data);
}
});
});
});
</script>
网站.php:
Route::get('/search', 'TeachersController@ajaxsearch');
搜索控制器:
public function ajaxsearch(){
$searchname = Input::get ( 'searchname' );
if($searchname != ""){
$teacher = Teacher::where ( 'efirst', 'LIKE', '%' . $searchname . '%' )->paginate(10);
return response()->json($teacher);
}
}
视图:
<div class="input-group stylish-input-group">
<input type="text" id="searchname" name="searchname" class="form-control" placeholder="Search..." >
<span class="input-group-addon">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-search">Search</span>
</button>
</span>
</div>
这应该可以解决问题。
.HTML:
<div id="datasearch"></div>
.JS:
$(function(){
$('#searchname').on('keyup', function(){
$.get('/teachers/search/'+$(this).val(), function(response){
$('#datasearch').html(response);
});
});
});
控制器:
public function ajaxsearch(string $value = null){
return $value ? Teacher::whereRaw("UPPER(efirst) LIKE '%".strtoupper($value)."%'")->paginate(10) : [];
}
路线:
Route::get('/teachers/search/{value?}', 'TeachersController@ajaxsearch');
聊天后的版本
.HTML:
<ul id="datasearch"></ul>
.JS:
$(function(){
var $datasearch=$('#datasearch');
$('#searchname').on('keyup', function(){
$.get('/teachers/search/'+$(this).val(), function(teachers){
$datasearch.empty();
for (var i=0; i<teachers.length; i++){
$datasearch.append('<li>'+teachers[i].efirst+' <a href="/teachers/edit/'+teachers[i].id+'">edit</a></li>');
}
});
});
});
控制器:
public function ajaxsearch(string $value = null){
return $value ? Teacher::select('id','efirst')->whereRaw("UPPER(efirst) LIKE '".strtoupper($value)."%'")->offset(0)->limit(10)->get() : [];
}
路线:
Route::get('/teachers/search/{value?}', 'TeachersController@ajaxsearch');
你知道jquery ajax中的error函数吗?
$(document).ready(function(){
$('#searchname').on('keyup', function(){
var text = $('#searchname').val();
$.ajax({
type:"GET",
url: 'teachers/search',
data: {text: $('#searchname').val()},
success:function(data){$('tbody').html(data);},
error:function(jqXHR){alert(jqXHR.status);}
});
});
});
你可以试试这个,如果有一些,它会显示错误,文本应该在反逗号中,因为它是一个键值对。
在搜索控制器中,您访问了错误的输入名称。应该是这样的
public function ajaxsearch(){
$searchname = Input::get ( 'text' );
if($searchname != ""){
$teacher = Teacher::where ( 'efirst', 'LIKE', '%' . $searchname . '%' )->paginate(10);
return response()->json($teacher);
}
}
首先,只需手动转到 URL 并输入参数即可。
http://todolist.local/teachers/search?text=a
如果您得到任何回复。这意味着你的PHP工作得很好。
如果收到错误,则使用的是 GET 方法。请在路由中传递变量参数
Route::get('/search/{searchName}', 'TeachersController@ajaxsearch');
并请更正您的控制器
public function ajaxsearch($searchname){
if($searchname != ""){
$teacher = Teacher::where ( 'efirst', 'LIKE', '%' . $searchname.'%' )->paginate(10);
return response()->json($teacher);
}
}
其次,请在 Jquery for GET 方法 AJAX 中使用 $.get 方法
<script>
$(document).ready(function(){
$('#searchname').on('keyup', function(){
var text = $('#searchname').val();
$.get(urlHere, function(response){
console.log(response);
});
});
});
</script>
查看控制台选项卡,如果收到响应