ビューからライブサーチを作成していますが、ヘッダが投稿後にデータを送信しているように見せても、なぜレスポンスデータが利用できないのか不思議です。私の検索バーには、テンプレート/ reports.blade.phpである:Ajax Live SearchのLaravelビューへの投稿
<div class="large-6 columns">
<input type="text" id="search-input" onkeyup="searchup()" onkeydown="searchdown()" placeholder="Search Recipient"></div>
<div id="search-results"></div>
ザ・jsのスクリプトはこれです:私のコントローラは、このですが
Route::group(['middleware' => ['web']], function() {
Route::resource('reports', 'ReportsController');
Route::post('reports/executeSearch', ['uses' => '[email protected]']);
});
:
var timer;
function searchup() {
timer = setTimeout(function()
{
var keywords = $('#search-input').val();
if (keywords.length > 0)
{
$.post('/reports/executeSearch', {keywords: keywords}, function(markup)
{
$('#search-results').html(markup);
});
}
}, 500);
}
function searchdown()
{
clearTimeout(timer);
}
私のルートはこれです:
public function index()
{
// get all the reports
$reports = Reports::all();
// load the view and pass the reports
return View::make('templates.reports')
->with('reports', $reports);
}
public function search(Request $keyword)
{
$searchUsers = Recipients::where("name", "iLIKE", "%{$keyword->get('keywords')}%");
return View::make('templates.searchUsers')->with('searchUsers', $searchUsers);
}
ご覧のとおり、
@foreach($searchUsers as $key => $value)
<b>{{ $value->name }}</b>
<br>
@endforeach
しかし、いくつかの理由で、私のreports.blade.phpの内側に追加していないようです:単純なループであるテンプレート/ searchUsers.blade.phpにデータ。 js経由で挿入するだけですか?
エラー処理のため ')(' .failを使用しています。あなたのリクエストは、おそらく非200ステータスで返されます。 – itachi
これは200 OKステータスです。どういう意味ですか? – Odinovsky
開発者のツールバー(chrome)またはfirefoxで反応を確認できますか? – itachi