为了账号安全,请及时绑定邮箱和手机立即绑定

AJAX POST发送空白而不是JSON对象

AJAX POST发送空白而不是JSON对象

PHP
忽然笑 2021-04-07 16:15:13
我正在使用一个名为register.php的PHP文件在我的数据库中注册新用户,其中一些数据来自注册表格,但是,我数据库中的最后两个数据字段是两个默认的JSON对象。为此,我在注册按钮click事件上的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对象,而不是我进入数据库的空白。
查看完整描述

3 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

通过$ _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;


查看完整回答
反对 回复 2021-04-23
?
FFIVE

TA贡献1797条经验 获得超6个赞

您不需要JSON.stringify(cards)。您可以直接发送卡而不是cardsJSON。


$.ajax({

            type: 'POST', 

            url: 'php_includes/register.php',

            data: {cards: cards},

            dataType: 'json'

        });


查看完整回答
反对 回复 2021-04-23
?
绝地无双

TA贡献1946条经验 获得超4个赞

您需要使用json_decode()$freecards

$freecards = json_decode($freecards, true);


查看完整回答
反对 回复 2021-04-23
  • 3 回答
  • 0 关注
  • 280 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信