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コードは一箇所にあるのではなく、ページ全体に散らばっています。私の問題は、そもそもコードが正常に機能することです。ユーザーが「友達として追加」をクリックすると、「本当に」または「キャンセル」と尋ねられます。次に、ユーザーが「本当に」をクリックすると、「友達として追加」が「リクエストのキャンセル」に変わり、リクエストがユーザーに送信されます。次に、ユーザーがページを更新せずに[リクエストのキャンセル]をクリックすると、正常に機能して「本当に」または「キャンセル」と尋ねられます。ユーザーが「本当に」をクリックすると、リクエストはキャンセルされますが、「キャンセル」をクリックすると、リクエストはキャンセルされません。
つまり、基本的に問題は、リクエストが送信されてページが更新されない場合、リクエストID `が更新されないため、リクエストをキャンセルできないことです。
とにかく、ページを更新せずにrequestIDの値を取り戻すことができますか?
scripts_for_profile / request_as_friend.phpで、以下はデータベースに友達リクエストを挿入するためのコードです。
$sql = mysql_query("INSERT INTO friends_requests (mem1, mem2, timedate) VALUES('$mem1','$mem2',now())") or die (mysql_error("Friend Request Insertion Error"));