2014-01-13 210 views
0

我知道我无法将AJAX Vars直接传递给PHP,因为它是客户端与服务器端脚本。但尽管如此,这里是我的代码:如何将AJAX变量传递给PHP

setInterval(function() 
{ 
    //do something after you receive the result 
    var xmlhttp; 
    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     document.getElementById("message_area").innerHTML=xmlhttp.responseText; 
    } 
    } 
    xmlhttp.open("GET","messages.txt",true); 
    xmlhttp.send(); 
} 

我知道我可以张贴到使用AJAX PHP页面,像这样间接地处理AJAX变量:

$.ajax (
{ 
    type: "POST", 
    url: "decode.php", 
}); 

我只需要知道如何将xmthttp.open调用中使用的“messages.txt”文件的内容传递给PHP文件以供进一步处理。

我该怎么做?

+0

不清楚非jQuery代码对于这个问题意味着什么 - 如果您只是问如何使用jQuery AJAX功能,该文档包含几个示例。此外,您多次提及“AJAX变量”,并且该术语没有确定的含义。 –

回答

1

希望这有助于:

$.get("messages.txt", function(data) { //Fetching contents of messages.txt file. 
    $.ajax ({ 
     type: "POST", 
     url: "decode.php", 
     data: data, //passing contents of messages.txt file to decode.php 
     success: function(result){ 
       alert(result);//Getting result from decode.php 
     } 
    }); 
}); 

欢呼

+0

这会从xmlhtttp请求中获取messages.txt结果吗? – amartin94

+0

烨..不要试一试N参看.. – phpdev

+0

可能是一个愚蠢的问题..但我使用$ _ POST [“数据”]检索在PHP脚本权的变种?因为它不工作:/ – amartin94

1

你使用的是jQuery吗?你的第一个代码块是普通的js,第二个是jQuery的ajax简称。

这就是说,如果你想使用jQuery POST ajax数据,你会做类似下面的事情。

var PostData = "something"; 

$.ajax({ 
    type: "POST", 
    url: "someurl", 
    data: PostData 
}).done(function(returnData) { 
    //process data returned from server, if there is any 
}); 
+0

然而,我知道这一点,xmlhttp.open检索一个txt文件,我需要该文件的内容张贴到一个PHP页面。所以是否有可能做类似Var PostData = xmlhttp.open(...)? – amartin94

2

如果使用纯JavaScript:

var url = "get_data.php"; 
var params = "lorem=ipsum&name=binny"; 
http.open("POST", url, true); 

//Send the proper header information along with the request 
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
http.setRequestHeader("Content-length", params.length); 
http.setRequestHeader("Connection", "close"); 

http.onreadystatechange = function() {//Call a function when the state changes. 
    if(http.readyState == 4 && http.status == 200) { 
     alert(http.responseText); 
    } 
} 
http.send(params); 

或者如果你使用jQuery,简单地说:

$.ajax (
{ 
    type: "POST", 
    url: "decode.php", 
    params: {param1: "val1", param2: "val2"} 
});