我正在做一个简单的网站与Laravel和在我的PagesController
我有一个函数,将项目存储到会话,并增加cartCount
如果项目尚未存储在会话中。会话不能工作,直到第二个请求
在我的网站上,每个项目上都有一个按钮,当点击它时,使用AJAX将'item_id'
发送到功能postToCart
被调用的网站。我想要做的是:成功添加项目时返回item_name
。
当我第一次点击按钮时,它告诉我该项目已被添加,这是我想要的。问题是,当我第二次按下按钮时,函数postToCart
再次输入if语句。问题是只有第二个请求后,一切正常。
public function postToCart(Request $request) {
$id = $request->input('item_id');
$item = Item::all()->where('item_id', '=', $id)->first();
if (!session()->has($id))
{
session()->put($id, 1);
session(['cartCount' => session('cartCount') + 1]);
return $item->item_name;
}
}
AJAX在客户端:
function cart_click(id, url) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'POST',
url: url,
data: {
'item_id': id
},
success: function(result){
if (result)
{
alert('Item added: '.concat(result));
}
else
{
alert('Item already in cart');
}
}
});
}
你确定,第一个请求还要输入'if'语句,第二个呢?有可能首先请求被忽略/错误的地方? –
是的,因为我在客户端的ajax中实现了成功函数,而且我使用'alert(id)',所以我知道什么时候返回一些东西。 – Clutchy
您可以改用'javascript'中的'localStorage'来代替。 –