Внедрить панель поиска Laravel / AJAX

Здравствуйте, я могу сделать стандартный поиск 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

1

Решение

В вашем AJAX запрос на изменение:

'127.0.0.1:8000/search'

в

'/search'

Я предлагаю вам использовать JQuery Автозаполнение

Очень прост в настройке.

Ознакомьтесь с документацией по API.

0

Другие решения

В зависимости от вашей версии 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);
}
}});});

});

https://laravel.com/docs/5.1/requests#retrieving-input.

1

Если вы имеете в виду обработать результат в браузере, проверьте внутри своего AJAX, закодированного с помощью jQuery, переменная «response» — это сервер, возвращающий данные.
Вам просто нужно заполнить возвращенные данные на своей странице после завершения AJAX.

Например положить в

<div id="searchResult"></div>

Вам нужно поместить ниже в ваш ajax после ответа, возвращающегося с jquery, как:

$("#searchResult").html(response);
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector