gpt4 book ai didi

php - AJAX POST 发送空格而不是 JSON 对象

转载 作者:行者123 更新时间:2023-12-01 06:11:10 25 4
gpt4 key购买 nike

我正在使用名为 register.php 的 PHP 文件,使用来自注册表单的一些数据在数据库中注册新用户,但是,数据库中的最后两个数据字段是两个默认的 JSON 对象。为此,我在注册按钮单击事件的 js 文件中创建变量,然后使用 JSON.stringify() 通过 AJAX/JQuery 发送它,如下所示:

除了这个 AJAX/JQuery 之外,我还尝试使用 xmlhttp,创建请求并使用 open("GET", ...)、send(...) 发送数据并以相同的方式接收数据在 PHP 文件上。这两种方式最终都会收到空格而不是 JSON 对象。


$("#registerButton").click(function(){

cards = {"idcards": [1,4,7,10,13,16,17,19,23,27,29,35,39,41,43,46,58,77,95,120]};
cardsJSON = JSON.stringify(cards);


$.ajax({
type: 'POST',
url: 'php_includes/register.php',
data: {cards: cardsJSON},
dataType: 'json'
});
});

这是 PHP 代码:

...

$freecards = $_POST['cards'];
...

#I'm omitting the other query values to simplify this.

$query = "INSERT INTO users VALUES ('{$freecards}')";

我期望收到与我在 JS 文件开头声明的相同的 JSON 对象,而不是我要进入数据库的空白。

最佳答案

通过 $_POST 变量获取值 -

JavaScript:

$("#registerButton").click(function(){

var cardsObj = {"idcards": [1,4,7,10,13,16,17,19,23,27,29,35,39,41,43,46,58,77,95,120]};

$.ajax({
type: 'POST',
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
dataType : "json",
url: 'php_includes/register.php',
data: {cards: cardsObj},
success: function(data) {
console.log(data);
}
});

});

PHP:

$jsonString = $_POST['cards'];
$cardsJsonString = json_encode($jsonString);

header('Content-Type: application/json');
echo $cardsJsonString;

想要将 JSON 从 JavaScript 发送到 PHP:

    $.ajax({
type: 'POST',
contentType: "application/json",
dataType : "json",
url: 'php_includes/register.php',
data: {cards: cardsObj},
success: function(data) {
console.log(data);
}
});

PHP:

$jsonString = file_get_contents("php://input");
$phpObject = json_decode($jsonString);

$newJsonString = json_encode($phpObject);
header('Content-Type: application/json');
echo $newJsonString;

关于php - AJAX POST 发送空格而不是 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55685673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com