0

次のリンクをクリックした後、広告ボックスを非表示にするためのjqueryコードがあります。

$('a.close').click(function () {
   var parent = $(this).parent().parent();
   var adid = $(parent).attr('id');
   $.ajax({
       type: "POST",
       url: "./setcookie.php",
       data: "adid=" + adid,
       cache: false,
       dataType: 'json',
       success: function (cook) {
           if (cook.set === 'success') {
               parent.fadeOut(1000);
           }
       },
       error: function () {
           $(".guestwarn").html("<font color='red'>There was an error submitting the form. Please try again.</font>").fadeIn(1000);
       }
   });
   return false;

});

なので、クッキークローズボックスでお願いします。私のhtml(php)は次のとおりです。

<?php if(isset($_COOKIE[ "msg1"])){?>
<div id="msg1" class="msgbox">
    <div class="guestwarn">
        <a href="#" class="close">X</a>
        Something goes here...
    </div>
</div>
<?php } ?>

したがって、私の作業用setcookie.phpは次のとおりです。

$adcookies = array();
$value = $_POST['adid'];
if ($value) {
    setcookie($value, $value, time() + 3600);
    if (isset($_COOKIE[$value])) {
        $adcookies['set'] = "success";
    } else {
        $adcookies['set'] = "error";
    }
    echo json_encode($adcookies);
}

2回クリックするとadbox(.msgbox)が非表示になるのはなぜですか?コードの何が問題になっていますか?ありがとうございました

4

1 に答える 1

0

私はクッキーに賭けます。Cookieを設定すると、ページを更新した後(この場合は2番目のAJAXリクエスト)にCookieが「表示」されるため、2回クリックする必要があります。Cookieの代わりにセッションを使用して解決できます。

于 2013-03-11T20:11:33.437 に答える