2014-06-26 270 views
0

我有以下代碼,並且我無法清除導致我網站上的錯誤的一個變量。點擊後清除變量

以下代碼塊並取消阻止用戶。所以在If語句中檢查用戶是否被阻塞。所以它總是0或1.問題是,在頁面加載第一次後,if語句中的值保持不變,我必須刷新頁面,以便該值可以更改。

關於如何解決這個問題的任何想法?

$('#confirmBlockUser<?php echo $otherConversation->getId(); ?>').on('click', function(e) { 
    e.preventDefault(); 
    if (<?php echo $otherConversation->isUserBlocked($conUser->getId(), UserSession::getUserId()); ?>) { 
     $.post("/conversation/unblock", { usrId: '<?php echo $conUser->getId(); ?>' }) 
      .done(function (data) { 
       $(".<?php echo $otherConversation->getId().'-con' ?> span.blocked").hide(); 
     }); 

    } else { 

     $.post("/conversation/block", { usrId: '<?php echo $conUser->getId(); ?>' }) 
      .done(function (data) { 
       $(".<?php echo $otherConversation->getId().'-con' ?> span.blocked").show(); 
      }); 

     } 
}); 
+0

'$ .show'接受第二個布爾參數,我相信。 –

回答

3

您將該值添加到php輸出中,因此它在頁面從服務器發送後保持不變。 PHP是服務器端!

您需要JavaScript來實現這一點。

所以也許:

var blocked = <?php echo $otherConversation->isUserBlocked($conUser->getId(), UserSession::getUserId()); ?>; 
... 
if (blocked) { 
    ... 
    // unblock in ajax success function or on another condition 
    blocked = false; 
} else { 
    ... 
    // block again, because some condition is met 
    blocked = true; 
} 
1

將您從PHP這隻會改變頁面加載或通過做一個AJAX調用測試你的「如果」語句。您需要通過AJAX將該變量設置爲一個javascript變量,然後在您的函數中測試該變量。

$('#confirmBlockUser<?php echo $otherConversation->getId(); ?>').on('click',function(e){ 
e.preventDefault(); 

$.post('MYBLOCKEDTEST.php',function(RETURN){ 
    var blocked = RETURN; 
    if (<?php echo $otherConversation->isUserBlocked($conUser->getId(), UserSession::getUserId()); ?>) { 
    $.post("/conversation/unblock", { usrId: '<?php echo $conUser->getId(); ?>' }) 
     .done(function (data) { 
      $(".<?php echo $otherConversation->getId().'-con' ?> span.blocked").hide(); 
    }); 

    } else { 

    $.post("/conversation/block", { usrId: '<?php echo $conUser->getId(); ?>' }) 
     .done(function (data) { 
      $(".<?php echo $otherConversation->getId().'-con' ?> span.blocked").show(); 
     }); 

    } 
}); 

});

0

謝謝大家,是的,完全愚蠢,你們是對的,這將永遠不會工作。我必須刷新頁面-_-

所以我做了,在js的最後我加了一個重載。

$('#confirmBlockUser<?php echo $otherConversation->getId(); ?>').on('click', function(e) { 
e.preventDefault(); 
if (<?php echo $otherConversation->isUserBlocked($conUser->getId(), UserSession::getUserId()); ?>) { 
    $.post("/conversation/unblock", { usrId: '<?php echo $conUser->getId(); ?>' }) 
     .done(function (data) { 
      $(".<?php echo $otherConversation->getId().'-con' ?> span.blocked").hide(); 
    }); 

} else { 

    $.post("/conversation/block", { usrId: '<?php echo $conUser->getId(); ?>' }) 
     .done(function (data) { 
      $(".<?php echo $otherConversation->getId().'-con' ?> span.blocked").show(); 
     }); 

    } 

location.reload(); 

});