我构建了一个ajax帖子,它将每个滑块值(我使用jquery ui滑块)发送到我的控制器。
Ajax代码:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'post',
contentType: "application/json",
url: "{{ Route('editProductPost', $product->id) }}",
headers: {
'X-Requested-With': 'XMLHttpRequest'
},
data: JSON.stringify({
value: getSliderVal,
productId : getPrId
}),
datatype: 'json',
success: function(response) {
// get response
console.log(response.sliderValue)
}
});
在我的控制器中,我这样做:
public function editProductPost(Request $request)
{
Log::info($request->get('value'));
return view('product.edit', [
'sliderValue' => $request->get('value')
]);
}
这会返回正确的滑块值
日志::信息($请求 - >获得('值'));
但是我在浏览器控制台中收到此错误消息:
POST http://localhost/myApp/public/product/edit/98 500(内部 服务器错误)
稍后我想在我的视图中在php循环中调用此sliderValue
。
修改
我有一个csrf令牌:
<meta name="csrf-token" content="{{ csrf_token() }}">
修改
我做到了:
$sliderValue = $request->get('value');
$route = 'updateProduct';
return view('product.edit', compact(['sliderValue', 'route']))->render();
控制台会打印我undefined
,如果我执行此操作{{ sliderValue }}
,我会收到sliderValue
未定义的错误
答案 0 :(得分:0)
您的代码几乎没有变化:
public function editProductPost(Request $request)
{
Log::info($request->get('value'));
$sliderValue = $request->get('value';
return view('product.edit', compact('sliderValue'))->render();
}
答案 1 :(得分:0)
这里的问题是你在控制器中返回一个视图。如果您的视图在其中使用了{{$ sliderValue}},那么它应该可以正常工作。但是javascript无法获得sliderValue变量。
如果你想使用sliderValue,你可以返回这个数组
return [
'view' => view('product.edit', compact(['sliderValue', 'route']))->render(),
'sliderValue' => $sliderValue
];
这样你就可以向javascript发送一个具有2个属性的对象,一个应包含视图,第二个只包含该值。