首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在连续ajax调用的ajax调用之后,从数据库中获取php变量的值

在连续ajax调用的ajax调用之后,从数据库中获取php变量的值
EN

Stack Overflow用户
提问于 2012-11-01 21:46:47
回答 1查看 406关注 0票数 0
代码语言:javascript
运行
复制
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();
});
}

这是向人们发送朋友请求的函数,当请求被发送时,“添加为朋友”选项更改为“取消请求”。

代码语言:javascript
运行
复制
function toggleInteractContainers(x) {
    if ($('#'+x).is(":hidden")) {
        $('#'+x).slideDown(200);
    } else {
        $('#'+x).hide();
    }
    $('.interactContainers').hide();

}

该函数调用切换按钮,就像用户单击“添加为朋友”,然后请求选项“是”或“取消”。

php代码是

代码语言:javascript
运行
复制
<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中,下面是在数据库中插入朋友请求的代码。

代码语言:javascript
运行
复制
$sql = mysql_query("INSERT INTO friends_requests (mem1, mem2, timedate)     VALUES('$mem1','$mem2',now())") or die (mysql_error("Friend Request Insertion Error"));
EN

回答 1

Stack Overflow用户

发布于 2012-11-01 21:53:38

一个直接来自文档http://api.jquery.com/jQuery.post/的示例:

代码语言:javascript
运行
复制
$.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。

代码语言:javascript
运行
复制
<?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类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13186009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档