我可以使用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\DashboardController@get_salesthree'));
出于安全考虑,我不想使用路由参数传递用户输入数据.此外,我有多个用户输入参数需要发送到控制器,因此上述方法也是不可行的.因此,在这种情况下可以使用任何其他替代解
控制器代码段:
public function get_salesthree($frmyear,$toyear){ return \Response::Json(Salethree::get_formatted_salesthree($frmyear,$toyear ));}
下拉列表代码段:
<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路由之间的关系是什么?
解决方法 这只是您理解的一个示例,我希望这将指导您获取您的功能.如果您不想在URL中显示您的数据/参数,那么您也可以使用AJAX Post,
$.AJAX({ type: 'POST' url: "get_salesthree/",data: yourForm.serialize() dataType: 'Json'
并在您的路由中,删除查询字符串的变量,并使其像这样.
Route::post('get_salesthree/',array('uses'=>'Analytics\DashboardController@get_salesthree'));
并在你的控制器
public function get_salesthree(Request $request){ $frmyear = $request->input('frmyear'); $toyear = $request->input('toyear'); //do your functionality as per your need return \Response::Json(Salethree::get_formatted_salesthree($frmyear,$toyear ));}总结
以上是内存溢出为你收集整理的php – 在Laravel 5.1中通过AJAX将用户输入数据从视图传递到控制器全部内容,希望文章能够帮你解决php – 在Laravel 5.1中通过AJAX将用户输入数据从视图传递到控制器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)