我正在我的表單中實作 JQuery Select2()。當我嘗試搜索時,我的 ajax 總是回傳 404 錯誤。但是該路由存在于 web.php 檔案中。
這是我的代碼:
網頁.php
Route::get('/searchByName/{var1}', [App\Http\Controllers\AppointmentsController::class, 'searchByName'])->name('searchByName');
JS檔案
$(document).ready(function() {
url = $(".js-example-basic-single").attr('data-url');
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$(".js-example-basic-single").select2({
dropdownParent: $('.name-search-box'),
language: {
inputTooShort: function () {return "Plase enter minimum 3 caracteres";},
minimumInputLength: function () {return "Plase enter minimum 3 caracteres";},
noResults: function () {return "no results";}
},
minimumInputLength: 3,
placeholder: "Select a patient",
allowClear: true,
width: "100%",
debug: true,
ajax: {
type: "GET",
url: "/searchByName",
delay: 500,
dataType: 'json',
data: function (params) {
var query = {
search: params.term
}
// Query parameters will be ?search=[term]&type=public
return query;
},
processResults: function (resp) { console.log('response' resp);
return {
results: resp
}
},
cache: true
}
});
}
約會控制器.php
public function searchByName($var1){
$key = $request->get('search');
$name = DB::table('patients_tbl')->select('id', 'first_name', 'middle_name', 'last_name')
->where('first_name', 'LIKE', "%$key%")->get()->toArray();
return $name;
}
我試過帶引數和不帶引數的路由,清除了所有型別的快取,包括路由快取等,但沒有用。
uj5u.com熱心網友回復:
ajax 檔案中的路由不提供引數。在 url: "/searchByName" 中,但在路由中它有一個引數為 {var1}
ajax: {
type: "GET",
url: "/searchByName",
delay: 500,
dataType: 'json',
data: function (params) {
var query = {
search: params.term
}
試試這個代碼一次:
var uri = "{{ route('searchByName', ':variable') }}";
uri = uri.replace(':variable', var1);
$.ajax({
url: uri,
type: 'get',
dataType: 'json',
success: function(response) {
console.log(response);
});
uj5u.com熱心網友回復:
也許您的 js 正在獲取 url 之類的
localhost/searchByName?search=abc
但是在 php 中定義的路由是
localhost/searchByName/abc
它是不同的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/344434.html
標籤:查询 拉拉维尔 路线 jquery-select2
