【发布时间】:2017-11-17 20:41:49
【问题描述】:
我正在做一个生活搜索,它应该带回结果,ajax 运行,它没有带来任何错误消息,而且我的 pace.js 表明它正在正确地执行 ajax 请求(栏填充到 100%)它只是没有给我带来任何结果。
阿贾克斯:
function search_data(search_value) {
$.ajax({
url: '/searching/' + search_value,
type: 'post',
success: function(data) {
alert(data);
$('#results').append('<div class="alert alert-success"><div>');
$('#results').html(data);
},
error: function(data) {
$('#results').html(data.responseText);
},
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}
});
}
master.blade.php(导航内的搜索框)
<form action="/searching" method="get" autocomplete="off" class="navbar-form navbar-left">
<div class="form-group">
<input type="text" class="form-control" id="search_text" onkeyup="search_data(this.value, 'result');" placeholder="Search">
</div>
<div id="result">
</div>
</div>
</form>
路线:
Route::post('/searching/{search}', 'SearchController@search');
控制器:
public function search($search_value) {
$search_text = $search_value;
if ($search_text==NULL) {
$data= Business::all();
} else {
$data=Business::where('name','LIKE', '%'.$search_text.'%')->get();
echo $data;
}
//$data = $data->toArray();
return view('results')->with('results',$data)->render();
}
//编辑
上面的代码给了我一个警报,所有的数据都是这样的:
[{"id":1,"name":"dasd","type":"3","email":"fsdf@fsdf.com","logo":null,"twitter_business":null,"facebook_business":null,"instagram_business":null,"image":null,"gallery_id":null,"user_id":1,"api_key":null,"created_at":"2017-06-15 11:02:32","updated_at":"2017-06-15 11:02:32"}]<table style="width:100%">
<tr>
<td></td>
<td>dasd</td>
</tr>
</table>
但不附加数据或做 .html
【问题讨论】:
-
如果在返回视图之前 dd($data) 会发生什么?此外,您可能需要在视图上调用 ->render() 以正确获取编译后的 html。
-
如果我在返回视图之前执行 dd($data),我什么也得不到,ajax 运行然后什么也没有发生
-
你需要返回一个json响应,像这样:return response()->json(['data' => view('results')->with('results',$data) ])
-
你的代码给了我:解析错误:语法错误,意外的 '=>' (T_DOUBLE_ARROW),期待 ',' 或 ')'
-
忘记括号做数组,编辑了我的评论