我希望通過AJAX將視圖下拉列表數據作爲表單變量使用post方法發送到控制器。通過AJAX在Laravel 5.1中將視圖中的用戶輸入數據傳遞給控制器
我能夠使用get方法和使用路由參數從視圖發送下拉列表數據到控制器。
這是我的看法代碼片段:
function drawChart(frmyear, toyear)
{
console.log(frmyear);
console.log(toyear);
var jsonData = $.ajax({
url: "get_salesthree/"+ frmyear + "/"+ toyear +"/",
dataType: 'json',
async: false
}).responseText;
console.log(jsonData);
路線的代碼片段:
Route::get('get_salesthree/{frmyear}/{toyear}', array('uses'=>'Analytics\[email protected]_salesthree'));
出於安全原因,我不想通過使用路由參數用戶輸入數據。另外我有多個用戶輸入參數需要發送給控制器,因此上述方法也不可行。因此在這種情況下可用的其他解決方案?
控制器代碼片段:
public function get_salesthree($frmyear, $toyear)
{
return \Response::json(Salethree::get_formatted_salesthree($frmyear, $toyear));
}
DROPDOWNLIST代碼片段:
<label>From Date</label>
<select id="ddlfrmyear" name="frmyear" onchange="check(this);">
<option value="-1">Select Date </option>
@foreach ($date_lists as $date_list)
<option value="{{ $date_list}}">{{ $date_list}}</option>
@endforeach
</select>
的JavaScript檢查功能:
function check(sel)
{
document.getElementById('ddltoyear').disabled = !sel.selectedIndex;
var frmyear = document.getElementById('ddlfrmyear').value;
var toyear = document.getElementById('ddltoyear').value;
console.log(frmyear);
console.log(toyear);
if (toyear != '-1')
{
drawChart(frmyear, toyear);
//drawChart();
}
}
現在我正在檢查函數變化AJAX調用後沒有定義如建議。我想知道下拉列表的選擇事件和AJAX路由之間的關係是什麼?
我嘗試了你的建議方法,並按照建議包含了ajax方法,但由於這個原因我沒有定義函數(實際上這是在Dropdownlist的OnSelect事件上調用的JavaScript函數)。我想知道爲什麼這個函數沒有在選擇dropdown時被執行,因爲我只是改變了ajax。 – rahul16590
爲什麼不將純Js代碼轉換爲Jquery標準?它會幫助你調試你的代碼。第二,console.log你的代碼,並檢查它在哪個位置斷開 – Qazi