[英]Getting value of a php variable from database after an ajax call for a successive ajax call
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"));
直接從文檔的一個例子http://api.jquery.com/jQuery.post/ :
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
alert("Data Loaded: " + data);
});
data
是test.php的輸出,它被發送回$.post
函數的回調。 因此,在您要進行服務器端更新的PHP文件* scripts_for_profile / request_as_friend.php *中,您可以回顯請求ID,並將像上面的示例一樣返回該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 /文本類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.