我正在嘗試使用 laravel 獲取自動完成資料。
控制器:
public function collection_search(Request $request) {
$term = $request->search;
$serveurapObj = new Serveurap();
$result = $serveurapObj->collectionAutocomplete();
return response()->json($result);
}
模型:
public function collectionAutocomplete($term) {
$where= ['m.supprime'=>'0', 's.supprime'=>'0'];
return DB::table('serveuraps AS s')
->select(DB::raw('s.nom as hostname'))
->join('machines AS m','m.id','=','s.machine_id')
->join('typeserveurs AS t','t.id','=','m.typeserveur_id')
->where($where)
->where('hostname','like','%'.$term.'%')
->get();
}
看法:
<div class="col-md-12">
<div class="form-group">
<label class="col-md-3 control-label">{!! __('script.serveur') !!}</label>
<div class="col-md-4">
<input class="form-control" type="text" name="serveur" id="relance-serveur" role="textbox" aria-autocomplete="list" aria-haspopup="true">
</div>
</div>
</div>
jQuery/Ajax:
$(document).ready(function () {
// relance serveur autocomplete textbox
$('#relance-serveur').autocomplete({
source: function (request, response) {
alert(request.term)
$.ajax({
url: '/scripts/relanceCollection/collection',
dataType: 'json',
data: {
search: request.term
},
success: function (data) {
response(data);
}
});
},
});
});
search在控制器中訪問from js時出現錯誤。
錯誤:

我列印了$request但它顯示了來自模型的 json 資料。我如何search從 js 到控制器,以便我可以根據該術語搜索資料?
uj5u.com熱心網友回復:
您發送的密鑰是search, 不是term。要么更改您的控制器代碼以反映這一點,要么更改 ajax 資料。
$.ajax({
...
data: {
→ search: request.term
},
...
});
public function collection_search(Request $request)
{
$term = $request->search; ←
...
}
$.ajax({
...
data: {
→ term: request.term
},
...
});
public function collection_search(Request $request)
{
$term = $request->term; ←
...
}
uj5u.com熱心網友回復:
你給錯誤的班級起了別名。你永遠不想要一個 Facade 的實體。如果您想要某個東西的實體,則需要底層實體,而不是外觀。
use Illuminate\Http\Request;
現在,$request將是一流的,而不是正面的實體,Illuminate\Support\Facades\Request。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395227.html
標籤:javascript php 查询 阿贾克斯 拉拉维尔
上一篇:使表格行隨著類的變化而淡入淡出?
下一篇:如何做一個影片側邊欄?
