<form method="post" action="{{route('searchName')}}" class="form-horizontal" id="formSearch">
<span class="input-group-btn">
<input type="text" name="contactname" id="txtSearch" class="form-control text-right"/>
<button class="btn btn-info pull-right" id="btnSearch" type="submit">
<i class="glyphicon glyphicon-search">Search</i> </button>
</span>
</form>
上面是index.blade.php
中的表单,然后我就像ajax:
$('#formSearch').on('submit',function (e) {
e.preventDefault();
var name = $('#txtSearch').val();
var url = $('#formSearch').attr('action');
$.get({
url: url,
data: name,
success: function (datas) {
console.log(datas);
}
})
})
在我的控制器中我有:如果你想知道,Contact是我的模型的名称,其中有一个可填写的:
public function searchNames(Request $request) {
if($request->ajax()) {
$contact = Contact::find($request->name);
$gotyou = DB::select("SELECT id FROM contacts WHERE name = '$contact'");
return response($gotyou);
}
}
并在路线中:
Route::get('/student/search','AjaxController@searchNames')->name('searchName');
我在我的控制台中得到不应该,我认为我的问题是我不能同时使用获取和发布!如何在文本框中发布文本并使用该名称搜索数据库,并返回具有该名称的记录。
答案 0 :(得分:0)
这里几乎没有问题......只是想让你朝着正确的方向前进......
首先,你的route :: get应该是route :: post,在这种情况下......
然后重新调整你的控制器功能...我建议你阅读整个Laravel文档...它很棒,只需要你一个小时左右...你会从中学到很多东西。 ..
public function searchNames(Request $request) {
if($request->ajax()) {
$contact = Contact::find($request->name);
// $contact is actually an instance of the Contact model, not a name
//$gotyou = DB::select("SELECT id FROM contacts WHERE name = '$contact->name'");
// if you want to get a single value and not a collection, use ->value()
$gotyou = DB::table('contacts')->where('name', $contact->name)->value('id');
return response($gotyou);
}
}
答案 1 :(得分:0)
$('#formSearch').on('submit',function (e) {
e.preventDefault();
var name = $('#txtSearch').val();
var url = $('#formSearch').attr('action');
var post = $('#formSearch').attr('method');
$.ajax({
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
type: post,
url: url,
data: {name:name},
success: function (data) {
alert(data[0]);
}
})
})
问题已修复,在控制器中,您可以使用获取数据
$variable = $_POST['name']
记得我们使用name
传递了我们的文本框数据,上面提到了代码,然后当你使用$ _POST ['name']获得它时,你可以return response($variable)
获得结果回顾。