这可能是一个新手问题,但我真的需要帮助。
我正在网上商店创建一个愿望清单,如果用户登录,愿望清单项目将保存在数据库中,未登录用户的愿望清单将通过cookie保存,我正在使用AJAX愿望清单功能。除了在第一个ajax请求中没有更新cookie之外,一切顺利。
这是我的第一步(ajax):
上述步骤并未自动更新心愿单模板$_COOKIE[]
需要页面刷新。
这是我更新的步骤(ajax)
上面的代码解决了这个问题,(调用第2步只是刷新$_cookie
值。)但是需要两个ajax请求才能更新wishlist,这需要一点时间才能工作。我敢肯定,这不是最好的解决方案。我知道这是一个更好的解决方案。
帮助请:)
由于
答案 0 :(得分:1)
Cookie可以仅由javascript设置。当您使用ajax时,我认为您可以在没有任何页面刷新的情况下处理cookies。
这是你应该实现的逻辑。
0
时,PHP可以填充$_COOKIE
超全局。它会在请求完成后在浏览器中设置cookie。 0
只是将数据保存在cookie中。此Cookie可通过document.cookie
获得。这可以通过jquery // ajax.js
$.post("updatewishlist.php",
{
'wishlist_item':'wishlist_value'
},
function(json){
// callback function
if(json.status==0){
$.cookie('the_cookie', 'the_value', { expires: 7 });
}
});
我在这里使用了jquery cookie plugin
// updatewishlist.php
<?php
if(user_logged_in()){
// sanitize input here
// update database with $_POST['wishlist_item']
$status = 1;
}else{
// update the cookie
// manipulate $_COOKIE super global
$status = 0;
}
// echoing json
echo json_encode(array('status' => $status));
?>