var friendRequestURL = "scripts_for_profile/request_as_friend.php";
function addAsFriend(a,b) {
$("#add_friend_loader").show();
$.post(friendRequestURL,{ request: "requestFriendship", mem1: a, mem2: b, thisWipit: thisRandNum } ,function(data) {
$("#add_friend").html(data).show().fadeOut(12000);
$("#friends").html('<div id="land"><a href="#" onclick="return false" onmousedown="toggleInteractContainers(\'cancel_request\');" >Cancel Request</a></div>').show();
});
}
function cancel_request(x) {
$.post(friendRequestURL,{ request: "cancel", reqID: x, thisWipit: thisRandNum } ,function(data) {
$("#cancel_request").html(data).show().fadeOut(12000);
$("#land").html('<div id="friends"><a href="#" onclick="return false" onmousedown="javascript:toggleInteractContainers(\'add_friend\');">Add as Friend</a></div>').show();
});
}这是向人们发送朋友请求的函数,当请求被发送时,“添加为朋友”选项更改为“取消请求”。
function toggleInteractContainers(x) {
if ($('#'+x).is(":hidden")) {
$('#'+x).slideDown(200);
} else {
$('#'+x).hide();
}
$('.interactContainers').hide();}
该函数调用切换按钮,就像用户单击“添加为朋友”,然后请求选项“是”或“取消”。
php代码是
<div id="land"><a href="#" onclick="return false" onmousedown="toggleInteractContainers(\'cancel_request\');" >Cancel Request</a></div>
<div id="friends"><a href="#" onclick="return false" onmousedown="javascript:toggleInteractContainers(\'add_friend\');">Add as Friend</a></div>
<div class="interactContainers" id="add_friend" style="float:right; margin-right:100px; margin-top:0px;">
Really?
<a href="#" onClick="return false" onMouseDown="javascript:addAsFriend(<?php echo $logOptions_id; ?>, <?php echo $id; ?>);">Yes</a>
<a href="#" onClick="return false" onMouseDown="javascript:toggleInteractContainers('add_friend');">cancel</a>
</div>
<div class="interactContainers" id="cancel_request" style="float:right; margin-right:100px; margin-top:0px;">
Really?
<a href="#" onClick="return false" onMouseDown="javascript:cancel_request(<?php echo $requestID ; ?>)">Yes</a>
<a href="#" onClick="return false" onMouseDown="javascript:toggleInteractContainers('cancel');">cancel</a>
</div>php代码不是在一个地方,而是分散在页面上。我的问题是,代码一开始工作得很好。就像用户点击“添加作为朋友”,然后它会问他们“真的”或“取消”。然后,如果用户单击“真的”,则“添加为朋友”更改为“取消请求”,并将请求发送给用户。然后,如果用户在没有刷新页面的情况下单击"Cancel Request“,那么它也可以正常工作,并询问”真的“或”取消“,如果用户单击”真的“,则请求被取消,但如果他单击"cancel”,则请求不会被取消。
因此,基本上问题是,如果发送了请求,而页面没有刷新,那么请求id `就不会被更新,因此我们无法取消请求。
在那里,我可以在不刷新页面的情况下取回requestID的值。
在script_for_profile/ request _Friend.php中,下面是在数据库中插入朋友请求的代码。
$sql = mysql_query("INSERT INTO friends_requests (mem1, mem2, timedate) VALUES('$mem1','$mem2',now())") or die (mysql_error("Friend Request Insertion Error"));发布于 2012-11-01 21:53:38
一个直接来自文档http://api.jquery.com/jQuery.post/的示例:
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
alert("Data Loaded: " + data);
});data是test.php的输出,它被发送回$.post函数的回调。因此,在PHP文件*script_for_profile/ request _Friend.php*中,您正在进行服务器端的更新,您可以回显请求ID,并且它将像上面的示例一样返回。
PHP中的另一种方法是创建一个对象,然后对其进行JSON编码,因此当返回它时,您可以在Javascript中使用JSON。
<?php
// Do some database stuff here
...
// Create object
$obj = new stdClass();
// Store requestID in your object (however it is that you choose to get it)
$obj->requestID = getRequestID();
// Encode object as JSON and echo out
$result = json_encode($obj);
echo($result);
?>您可能还希望将标题设置为json/text类型。
https://stackoverflow.com/questions/13186009
复制相似问题