0

嗨,我想将 ajax js 文件中的变量发布到 php 文件中。到目前为止,这是我的尝试。

       var request = createRequest();
      var deletenode = node.id;
   window.alert("nodeid=" + deletenode);
       var vars = "deletenode="+deletenode;
       request.open("POST", "deletenode.php", true);
      request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
       request.onreadystatechange = function() {
    handleRequest(request);
};
       request.send("deletenode=" + encodeURIComponent(deletenode));

这是我的 php 文件

 <?php
 print_r($_POST);
 $node = $_POST['deletenode'];
 print "node to be deleted: $node";
 ?>

我的 php 文件中没有任何内容,可能是什么问题。我的 ajax 请求是完整的并且工作正常。谢谢,这是我的处理请求。

function handleRequest(request) {
    // we only care for now about when we get to readyState 4
    // which means the request completed and we have the response back
    if(request.readyState == 4){
        //alert("response: " + request.responseText); // check to see what
        // we got back just for testing
        // now get response's TEXT and put into document (specify where)
        // below we have an html element with the id as timeLoc
        json= eval ("(" + request.responseText + ")");;

        //alert ("json="+json); //tests what was recieved
        //clicking the close button
        closeButton.onclick = function() {
            node.setData('alpha', 0, 'end');
            node.eachAdjacency(function(adj) {
                adj.setData('alpha', 0, 'end');
                var request = createRequest();
                var deletenode = node.id;
                window.alert("nodeid=" + deletenode);
                var vars = "deletenode="+deletenode;
                request.open("POST", "deletenode.php", true);
                request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                request.onreadystatechange = function() {
                    handleRequest(request);
                };
                request.send("deletenode=" + encodeURIComponent(deletenode));
            });       
        }// end readystate=4
    }//end handle request
4

2 回答 2

0

请记住,您必须将数据作为键/值对发送 -request.send("deletenode=" + encodeURIComponent(deletenode));

于 2013-03-25T02:37:05.663 回答
0

我不确定这是否是复制/粘贴错误,但如果这是您的实际代码,您似乎缺少一些花括号关闭。并有一个双;; 在 eval 行的末尾。这是用额外的花括号整理的代码,这行得通吗?

 function handleRequest(request) {
    if(request.readyState == 4){
        json= eval ("(" + request.responseText + ")");
        closeButton.onclick = function() {
            node.setData('alpha', 0, 'end');
            node.eachAdjacency(function(adj) {
                adj.setData('alpha', 0, 'end');
                var request = createRequest();
                var deletenode = node.id;
                window.alert("nodeid=" + deletenode);
                var vars = "deletenode="+deletenode;
                request.open("POST", "deletenode.php", true);
                request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                request.onreadystatechange = function() {
                    handleRequest(request);
                };
                request.send("deletenode=" + encodeURIComponent(deletenode));
            });
        }
    }
}
于 2013-03-25T03:12:17.337 回答