我有以下代码,而且我无法清除导致我网站上出现错误的一个变量。
以下代码会阻止和取消阻止用户。因此在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 :(得分: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 :(得分:1)
您正在接受来自php的'if'语句的测试,该语句只会在页面加载或进行AJAX调用时更改。你需要通过AJAX将php变量设置为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();
});
}
});
});
答案 2 :(得分: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();
});