使用AJAX从原始JavaScript到PHP的值

时间:2018-08-18 00:17:03

标签: javascript php ajax

我想知道如何使用ajax和vanilla javascript将某些内容发送到php。 我问你,因为我刚刚找到了jQuery解决方案。

我知道,如果我想接收某些东西,它应该像这样:

var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      this.responseText; // This is my response
    }
  };
  xhttp.open("GET", "phpfile.php", true);
  xhttp.send();

由于找不到任何东西,有人可以向我解释或将其发送给解决方案。

1 个答案:

答案 0 :(得分:3)

第一种方法

要将数据从JavaScript发送到PHP(或任何其他脚本)应该与您发现的一样

xhttp.setRequestHeader('Content-type', 'application/json');
xhttp.send(JSON.stringify(params));

其中params是一些JavaScript变量。 application/json是JSON数据的数据类型。

在PHP方面,您也是正确的:使用JSON_decode()获取与发送的JavaScript数据等效的PHP。


第二种方法(仅适用于GET请求)

GET数据被编码在URL中,因此另一种方法是将数据直接编码到PHP脚本的URL中。 (请勿对敏感数据执行此操作。)

Javascript:

xhttp.open("GET", "phpfile.php?x=2&y=3&z=4");

PHP:

$x = $_GET["x"];
$y = $_GET["y"];
$z = $_GET["z"];

因为您似乎不清楚如何使用第一种方法发送多个变量:

如果要发送多个变量,请将其放入对象或数组中(因为JSON.stringify()仅接受一个(数据)参数,而不是逗号分隔的参数列表)。

// for example, to send the variables x, y, z
var xValue = 2;
var yValue = 3;
var zValue = 4;
xhttp.setRequestHeader('Content-type', 'application/json');
xhttp.send(JSON.stringify({ x: xValue, y: yValue, z: zValue }));

PHP:

$data = json_decode($_GET);
echo $data->x;  // 2
echo $data->y;  // 3
echo $data->z;  // 4;

(免责声明:代码未经测试;我不确定是否在$_GET变量中接收到数据。在PHP接收JSON数据的变量上使用json_decode()。)