gpt4 book ai didi

php - 在 Laravel 5.1 中通过 AJAX 将用户输入数据从 View 传递到 Controller

转载 作者:可可西里 更新时间:2023-10-31 23:46:18 24 4
gpt4 key购买 nike

我想使用 post 方法通过 AJAX 将下拉列表数据作为表单变量从 View 发送到 Controller 。

我可以使用 get 方法和路由参数将下拉列表数据从 View 发送到 Controller 。

这是我的 View 代码片段:

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'));

出于安全原因,我不想使用路由参数传递用户输入数据。此外,我有多个用户输入参数需要发送到 Controller ,因此上述方法也不可行。因此,在这种情况下还有其他可用的替代解决方案吗?

Controller 代码片段:

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 调用后未定义检查函数。我想知道下拉列表的 on-select 事件和 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'));

在你的 Controller 中

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 将用户输入数据从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35147674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com