将数据从javascript发送到php文件

时间:2014-08-20 21:24:30

标签: javascript php ajax

我有这个函数从服务器上的php文件获取文本并将其压缩到HTML页面。

我需要做什么更改才能将数据(只有几个javascript变量)发送到php文件而不是从中读取?希望不是很多!!

function process() {
  if (xmlHttp) // the object is not void
  {
    try {
      xmlHttp.open("GET", "testAJAX.php", true);
      xmlHttp.onreadystatechange = handleServerResponse;
      xmlHttp.send(null);
    } catch (e) {
      alert(e.toString());
    }
  }
}

3 个答案:

答案 0 :(得分:0)

看看你可以使用的所有headers。在您的情况下,您可能希望使用POST而不是GET

 xmlHttp.open("POST", "testAJAX.php", true);
 xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");//or JSON if needed
 xmlHttp.onreadystatechange = handleServerResponse;
 xmlHttp.send(data);

答案 1 :(得分:0)

您可能更喜欢使用POST来发送数据较少的限制。 e.g:

var data = {
    user: 'Joe',
    age: 12
};

var httpReq = new XMLHttpRequest();
// true means async - you want this.
httpReq.open('POST', 'testAJAX.php', true);
// json is just a nice way of passing data between server and client
xmlhttpReq.setRequestHeader('Content-type', 'application/json');

// When the http state changes check if it was successful (http 200 OK and
// readyState is 4 which means complete and console out the php script response.
httpReq.onreadystatechange = function () {
    if (httpReq.readyState != 4 || httpReq.status != 200) return; 
    console.log(httpReq.responseText);
};

httpReq.send(JSON.stringify(data));

阅读它:

$name = json_decode($_POST['name']);
$age = json_decode($_POST['age']);

答案 2 :(得分:0)

如果它只是几个变量,您可以将它们弹出到查询字符串中 - 尽管您需要确保它们的值不会破坏您的PHP脚本或打开安全漏洞(例如,不要解释用户输入为SQL字符串)。对于更复杂的数据结构,请使用其他人建议的POST。

function process(var1value, var2value) {
    if(xmlHttp) {
        try {
           xmlHttp.open("GET", "testAJAX.php?var1="+var1value+"&var2="+var2value, true);
           xmlHttp.onreadystatechange = handleServerResponse;
           xmlHttp.send(null);
        } catch(e) {
           alert(e.toString());
        }
    }
}