1

ビューに複数の投稿用の好きなボタンと嫌いなボタンがあります。

しかし、私は投票を制限したいので、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);});
    });
4

3 に答える 3

1

Javascriptコードを生成するときにCookieを設定しています

于 2012-09-26T06:56:15.650 に答える
0

PHPはサーバー側のテクノロジーであるため、ページが表示されるまでにPHPはすでに彼の仕事をしています。したがって、phpでクライアントボタンのクリックに応答する方法はありません(ページをリロードする場合を除きますが、状況によってはそうではありません)。setcookieしたがって、 phpから削除し、jQueryを使用してCookieを設定する必要があります。

jQueryでCookieを設定/設定解除する方法を参照してください。詳細については。

于 2012-09-26T06:56:06.607 に答える
0

PHP を使用して Cookie を設定する代わりに、jQueryそれ自体を使用することをお勧めします。だから、それは最初にこれを使うでしょう。

また、関数$("a.btn-success").clickには次のものが含まれます。

$.cookie("coupcookie", calledbyid, { expires : 7 });
于 2012-09-26T07:01:38.563 に答える