如何将我的搜索关键字传递给我的控制器?
How can I pass my search keyword to my Controller?
我正在学习 laravel 5.4 并且我正在做一个示例项目。因为我需要从我的数据库中进行搜索。下面我附上了我的界面截图。
如您在我提供的搜索框中所见,我需要搜索 "malabe"。我需要为此取得成果。我已经实现了 Controller 并且也需要视图。下面我附上了我的控制器
class SearchController extends Controller
{
//search controller
public function search($keydown){
$searchDetails = DB::table('van_Services')
->where('vs_RouteTo','like','%'.$keydown.'%')
->orwhere('vs_RouteFrom','like','%'.$keydown.'%')
->orwhere('vs_Description','like','%'.$keydown.'%')
->orderBy('created_at', 'DESC')
->paginate(12);
return view('search.search', compact('searchDetails'));
}
}
路线代码
Route::get('/search/{key}','SearchController@search');
这里是我的搜索框代码div,
<div class="col-xs-6 col-sm-2 col-md-2">
<div class="search_box pull-right">
{{--Search Button--}}
<input type="text" name="search" id="search" laceholder="Search"/>
</div>
</div>
如果我执行 url 手册,我的路线和代码就可以工作,
我的问题是如何让我的搜索框工作?有任何教程或提示吗?
1.如果真的需要用URL link.
JS的解决方法是:
// q => Your search word
function redirectSearch(q) {
location.href = '/search/'+q;
}
将搜索字段值传递给此函数并自动重定向页面。
.
2。您可以将 GET 参数发送到控制器。
前台代码:
<div class="col-xs-6 col-sm-2 col-md-2">
<div class="search_box pull-right">
<form action="/search" method="GET">
{{--Search Button--}}
<input type="text" name="search" id="search" placeholder="Search"/>
</form>
</div>
控制器代码:
public function search(Request $request){
$search = $request->search;
... Your code ...
}
如果你使用带有请求的方法,请不要忘记
use Illuminate\Http\Request;
路线:
Route::get('/search','SearchController@search');
My route and code works if i do the url manual,
我想它已经在工作了,重定向只是你的问题。
只需简单地使用 JS/jQuery.
// when ENTER is pressed
$(document).keypress(function (e) {
if (e.which == 13) {
e.preventDefault();
window.location = APP_URL + "/search/" + $('#search').val();
}
});
祝你好运。
我正在学习 laravel 5.4 并且我正在做一个示例项目。因为我需要从我的数据库中进行搜索。下面我附上了我的界面截图。
如您在我提供的搜索框中所见,我需要搜索 "malabe"。我需要为此取得成果。我已经实现了 Controller 并且也需要视图。下面我附上了我的控制器
class SearchController extends Controller
{
//search controller
public function search($keydown){
$searchDetails = DB::table('van_Services')
->where('vs_RouteTo','like','%'.$keydown.'%')
->orwhere('vs_RouteFrom','like','%'.$keydown.'%')
->orwhere('vs_Description','like','%'.$keydown.'%')
->orderBy('created_at', 'DESC')
->paginate(12);
return view('search.search', compact('searchDetails'));
}
}
路线代码
Route::get('/search/{key}','SearchController@search');
这里是我的搜索框代码div,
<div class="col-xs-6 col-sm-2 col-md-2">
<div class="search_box pull-right">
{{--Search Button--}}
<input type="text" name="search" id="search" laceholder="Search"/>
</div>
</div>
如果我执行 url 手册,我的路线和代码就可以工作,
我的问题是如何让我的搜索框工作?有任何教程或提示吗?
1.如果真的需要用URL link.
JS的解决方法是:
// q => Your search word
function redirectSearch(q) {
location.href = '/search/'+q;
}
将搜索字段值传递给此函数并自动重定向页面。
.
2。您可以将 GET 参数发送到控制器。
前台代码:
<div class="col-xs-6 col-sm-2 col-md-2">
<div class="search_box pull-right">
<form action="/search" method="GET">
{{--Search Button--}}
<input type="text" name="search" id="search" placeholder="Search"/>
</form>
</div>
控制器代码:
public function search(Request $request){
$search = $request->search;
... Your code ...
}
如果你使用带有请求的方法,请不要忘记
use Illuminate\Http\Request;
路线:
Route::get('/search','SearchController@search');
My route and code works if i do the url manual,
我想它已经在工作了,重定向只是你的问题。 只需简单地使用 JS/jQuery.
// when ENTER is pressed
$(document).keypress(function (e) {
if (e.which == 13) {
e.preventDefault();
window.location = APP_URL + "/search/" + $('#search').val();
}
});
祝你好运。