プロジェクトをLaravel 5に転送しています。入力時にデータベースの既存の名前をリストするナビゲーションバー内にライブ検索機能があります。Larvel 5内でAjaxを使用して検索
文字を入力すると、Ajax内のURLが呼び出されますが、ネットワーク検査で500エラーが発生します。
誰かが解決策を知っていますか?
検索入力:
<form action="/search" class="search_form" method="get" autocomplete="off">
<div class="form-field">
<input type="text" name="s" class="search_keyword" id="search_keyword_id"
placeholder="Search the FTSE 100 & 250" required/>
<button type="submit" class="search_button" onclick="submitdata()">Search</button>
<div id="result">
</div>
</div>
</form>
JSスクリプト
<script type="text/javascript">
$(function() {
$(".search_keyword").keyup(function() {
var search_keyword_value = $(this).val();
var dataString = 'search_keyword=' + search_keyword_value;
if (search_keyword_value != '') {
$.ajax({
type: "POST",
url: "/searching",
data: dataString,
cache: false,
success: function (html) {
$("#result").html(html).show();
}
});
}
return false;
});
$("#result").live("click", function (e) {
var $clicked = $(e.target);
if (e.target.nodeName == "STRONG")
$clicked = $(e.target).parent().parent();
else if (e.target.nodeName == "SPAN")
$clicked = $(e.target).parent();
var $name = $clicked.find('.name').html();
var decoded = $("<div/>").html($name).text();
$('#search_keyword_id').val(decoded);
});
$(document).live("click", function (e) {
var $clicked = $(e.target);
if (!$clicked.hasClass("search_keyword")) {
$("#result").fadeOut();
}
});
$('#search_keyword_id').click(function() {
$("#result").fadeIn();
});
});
ルーティング:
Route::post('/searching', '[email protected]');
検索コントローラ内部のインデックス機能:
class SearchController extends Controller
{
public function index()
{
$search_keyword = $_POST['search_keyword'];
$first_query = DB::table('ftse100')->select('name', 'symbol')->
where('symbol', 'like', '%' . $search_keyword . '%')->orWhere('name', 'like', '%' . $search_keyword . '%');
$query = DB::table('ftse250')->select('name', 'symbol')->
where('symbol', 'like', '%' . $search_keyword . '%')->orWhere('name', 'like', '%' . $search_keyword . '%')
->union($first_query)->get();
$bold_search_keyword = '<strong>' . $search_keyword . '</strong>';
if ($query) {
foreach ($query as $rows) {
echo '<div class="show" align="left"><span class="name">' . str_ireplace
($search_keyword, $bold_search_keyword, $rows['name']) . '</span></div>';
}
} else {
echo '<div class="show" align="left">No matching records.</div>';
}
}
入手している500エラーに関する詳細情報を提供できますか? 'debug'toをtrueにすると詳細が得られます。 –