我想从ajax中检索值,在保存到数据库中时将其用作值
$("ul.dropdown-menu li").click(function() {
par = $(this).find("span.widgets").html();
$.ajax({
url: '/partA-save',
type: "POST",
data: {
'test': latest,
'widget': par,
_token: CSRF_TOKEN
},error:function(log) {
console.log(log);
}
});
console.log(par);
return true;
});
在控制台中,当用户单击ul里面的li时,par变量会正确记录该值。现在我想在控制器中使用它来获取if else语句
public function save(Request $request)
{
$newdata = $request->input('test');
$newWidget = $request->input('widget');
if ($newWidget == 'COST') {
$us = new Cost();
$us->api = $newWidget;
$us->save();
} else {
$us = new Map();
$us->api = $newWidget;
$us->save();
}
}
路线
Route::post('/partA-save','PartAController@save');
即使用户选择COST,控制器也始终使用else块中的代码。知道我在这里缺少什么吗?另外,如何在控制器中调试它,以便我可以在变量$ newWidget中查看其中的内容。如果我改变这个
date: { 'widget': 'COST'
保存到COST。
使用var_dump或dd返回null。如何在Ajax中正确设置值?
答案 0 :(得分:0)
尝试以下代码
更改从Ajax调用的URL
$("ul.dropdown-menu li").click(function() {
par = $(this).find("span.widgets").html();
$.ajax({
url: '{{url("/partA-save")}}',
type: "POST",
data: {
'test': latest,
'widget': par,
_token: CSRF_TOKEN
},error:function(log) {
console.log(log);
}
});
console.log(par);
return true;
});
在Controller中使用get方法替换输入。
public function save(Request $request)
{
$newdata = $request->get('test');
$newWidget = $request->get('widget');
if ($newWidget == 'COST') {
$us = new Cost();
$us->api = $newWidget;
$us->save();
} else {
$us = new Map();
$us->api = $newWidget;
$us->save();
}
}