[英]Instant search with Laravel Blade and Ajax,
這是我的jQuery代碼
我正在嘗試運行代碼,而Laravel刀片未在foreach語句中識別$ results變量。 我沒有為表單添加代碼,也沒有添加路由。 他們工作完美。
主要問題是在我的刀片文件中顯示ajax的結果(視圖)
// My Controller where i'm executing the search
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
use App\Tag;
use App\Lymstyle;
use App\Legende;
use App\Http\Requests;
use DB;
use Illuminate\Support\Facades\Input;
class SearchController extends Controller
{
public function getResults()
{
$query = Input::get('search');
$results = Post::where('title', 'LIKE', '%'.$query.'%')->get();
' return $results;'
}
}
?>
// The Ajax Call, where i'm handling the post request and its reponse
var timer;
function keyUp()
{
timer = setTimeout(function()
{
var keywords = $('#search').val();
if(keywords.length > 0)
{
var searchform = $('.search').serializeArray();
var url = $('.search').attr('action');
$.post(url, searchform, function(data){
console.log(data);
$('#search-results').html(data);
});
}
}, 500);
}
function keyDown()
{
clearTimeout(timer);
}
<div id="search-results">
@foreach($results as $post)
<h2>We found some...</h2>
@endforeach
</div>
我收到一個錯誤消息,說視圖中的$ results變量不存在
您可以json_encode
變量。
public function getResults()
{
$query = Input::get('search');
$results = Post::where('title', 'LIKE', '%'.$query.'%')->get();
echo json_encode(array('status'=>TRUE,'results'=>$results)); die;
}
jQuery和Ajax:
$(document).on('submit', '#formid', function (e)
{
e.preventDefault();
var frm = $(this);
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data)
{
var res = $.parseJSON(data);
var result = res.results;
$('#search-results').html(result);
}
});
我認為在您的控制器中,您需要返回視圖而不是結果。
首先將下面的函數放在單獨的刀片文件中,比如search.blade.php
:
@foreach($results as $post)
<h2>We found some...</h2>
@endforeach
現在,在您的控制器中,返回渲染的視圖而不是結果。
public function getResults()
{
$query = Input::get('search');
$results = Post::where('title', 'LIKE', '%'.$query.'%')->get();
return view('search')->with('results',$results)->render();
}
保持其他所有內容不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.