我喜欢和不喜欢我视图中的多个帖子的按钮。
但我想限制投票,因此使用持续7天的cookie。
我使用$("a.btn-success").click(function()
函数计算相应帖子的成功率并设置cookie。但我使用的php脚本即使没有点击按钮也会设置cookie。
<?php
$expire=time()+60*60*24*30;
setcookie("coupcookie", calledbyid, $expire);
?>
因此,如果我只刷新页面,我可以看到cookie已设置。
有谁能告诉我这里我做错了什么?
提前致谢。
修改的
这是我的点击功能。
$("a.btn-success").click(function(){
var calledby = $(this);
var calledbyid=calledby.attr("id");
<?php
$expire=time()+60*60*24*30;
setcookie("coupcookie", calledbyid, $expire);
?>
var url = $(location).attr('href');
var sub = window.location.pathname.split('/');
alert("Hey button clicked "+calledbyid);
$.post(url.replace(sub[2]+'/'+sub[3],'')+"home/vote",{ "id" : calledbyid, "vote" : 1 }, function(data){
//alert("Hey post request completed");
$.get(url.replace(sub[2]+'/'+sub[3],'')+"home/getsuccess", {"id": calledbyid}, function(result){
$("#successrate"+calledbyid).html(result.concat('%'));
}, "text").error(function(xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);});
}, "text").error(function(xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);});
});
答案 0 :(得分:1)
您在生成Javascript代码时设置cookie
答案 1 :(得分:0)
PHP是一种服务器端技术,所以当你看到页面PHP 已经完成了他的工作时。所以,没有办法回应php中的客户端按钮点击(除了重新加载页面,但在你的情况下情况并非如此)。因此,您需要从php中删除setcookie
并使用jQuery设置您的cookie。
有关详细信息,请参阅How to set/unset cookie with jQuery?。
答案 2 :(得分:0)
我建议你自己使用jQuery
,而不是使用PHP设置cookie。所以,它将是第一个using this。
函数$("a.btn-success").click
也包括:
$.cookie("coupcookie", calledbyid, { expires : 7 });