我正在嘗試爲用戶填寫和搜索多個表以查找訂單,佣金等,而無需重新加載頁面。以前從未使用AJAX,因此如果任何人都可以指出我要出錯的地方,或者幫助我實現這個目標,那將非常感謝!現在,當我點擊提交按鈕時,除了獲得500(內部服務器錯誤)消息之外沒有任何反應。Laravel 4使用Ajax搜索查詢
這是我的看法(家):
<div class="large-6 columns">
{{Form::open(array('route' => 'search', 'method' => 'post', 'id' => 'search_form'))}}
{{ Form::select('search_table',
array(
'select' => 'Search...',
'commissions' => 'Search commissions',
'estimates' => 'Search estimates',
'orders' => 'Search orders',
'warranties' => 'Search warranties',
), null, array('id' => 'search_table')) }}
<div class="search_box" id="search_column_div">
<!-- Search_column select goes here -->
</div>
<div id="search_input_div">
<!-- Search_input text field goes here -->
</div>
{{ Form::submit('Search', array('id' => 'search_button','class' => 'button expand radius search_button no_display'))}}
{{ Form::close() }}
</div>
<div id="search_results_div">
</div>
</div>
因爲搜索有很多變數,但我不希望把它佔用了大量的空間,我已經插入JS的下一部分該查詢基於他們以前的選擇。因此,他們將開始選擇表格進行搜索,然後選擇一列,然後他們將有一個輸入字段來編寫他們正在搜索的內容。
JS(我的問題可能是):
$(document).ready(function($){
$('#search_form').on('submit', function(){
$.post(
$(this).prop('action'),{
"search_table": $('#search_table').val(),
"search_column": $('#search_column').val(),
"search_input": $('#search_input').val(),
},
function(data){
$('#search_results_div').html(data);
},
'json'
);
return false;
});
});
控制器:
public function searchPost(){
$search_table = Input::get('search_table');
$search_column = Input::get('search_column');
$search_input = Input::get('search_input');
$search = DB::table($search_table)->where($search_column, 'LIKE', "%{$search_input}%")->get();
return $search;
}
和路由:
/*Search Page for Ajax*/
Route::post('/search', array(
'as' => 'search',
'uses' => '[email protected]'
));
再次
感謝您的時間和幫助!請隨時爲最佳做法提出建議!
您發佈的路由正在偵聽GET請求,但是您正在發送AJAX請求。 –
好點,更新了這個問題,但仍然收到500錯誤。 – mario