您好我可以进行标准的AJAX / PHP搜索,但发现很难转换为Laravel。我正在使用按键而不是按钮点击。我不确定这是否是正确实现ajax / laravel搜索栏的正确方法。我希望将数据库数据输出到视图页面中的div,但需要帮助才能解决这个问题。如果有人认为我做错了,请告诉我。总是愿意学习新代码。
控制器:
<?php
namespace App\Http\Controllers;
use App\Patient;
use DB;
use Illuminate\Http\Request;
class PatientController extends Controller
{
public function search(Request $request) {
// get the search term
$text = $request->input('text');
// search the members table
$patients = DB::table('patients')->where('firstname', 'Like', $text)->get();
// return the results
return response()->json($patients);
}
}
路线:
Route::get('search', 'PatientController@search');
查看:
@extends('Layout.master')
@section('content')
<!-- Ajax code -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script type="application/javascript">
$(document).ready(function(){
$('#txtSearch').on('keyup', function(){
var text = $('#txtSearch').val();
$.ajax({
type:"GET",
url: '127.0.0.1:8000/search',
data: {text: $('#txtSearch').val()},
success: function(data) {
console.log(data);
}
});
});
});
</script>
<div style="margin-top:70px;"></div>
@include('partials._side')
<div class="container">
<form method="get" action="">
<div class="input-group stylish-input-group">
<input type="text" id="txtSearch" name="txtSearch" class="form-control" placeholder="Search..." >
<span class="input-group-addon">
<button type="submit">
<span class="glyphicon glyphicon-search"></span>
</button>
</span>
</div>
</form>
<div id="result"></div>
</div>
@endsection
答案 0 :(得分:1)
答案 1 :(得分:1)
取决于您的Laravel版本(新版本使用此版本):
use Illuminate\Http\Request;
public function search(Request $request) {
$text = $request->input('text');
$patients = DB::table('patients')->where('firstname', 'Like', "$text")->get();
return response()->json($patients);
}
然后在javascript中:
$(document).ready(function(){
$('#txtSearch').on('keyup', function(){
var text = $('#txtSearch').val();
$.ajax({
type:"GET",
url: 'search',
data: {text: $('#txtSearch').val()},
success: function(response) {
response = JSON.parse(response);
for (var patient of response) {
console.log(patient);
}
}
});
});
});
答案 2 :(得分:0)
如果您的意思是在浏览器中处理结果,请检查使用jQuery编码的AJAX,&#34;响应&#34;变量是服务器返回数据。 您只需在AJAX完成后将返回的数据填充到您的页面中。
例如放入
<div id="searchResult"></div>
在使用jquery回复之后,你需要将下面放在你的ajax中:
$("#searchResult").html(response);