【问题标题】:Can't pass array through ajax [duplicate]无法通过ajax传递数组[重复]
【发布时间】:2018-12-19 23:52:12
【问题描述】:

尝试将数据传递给 php 脚本,以便将所述数据添加到会话中。 调试控制台日志返回如下: quant 数组是正确的,typeof 是对象,JSON.stringified data 的类型是 string ,最后是来自 ajax 成功的 success
在 PHP 脚本中 var_dump 返回是NULL

    $('#bigsubmit').click(function() {
    var quant = [];
    $('.input-number').each(function() {
        var tmp = {};
        tmp.id = this.id;
        tmp.qu = $(this).val();

        quant.push(tmp);
    });
    console.log(quant);
    var data = JSON.stringify(quant);
    console.log(typeof(data));
    $.ajax({
        type: "POST",
        url: url,           
        data: {
            data: data
        },
        success: function() { 
            console.log("success");     
        }
    }); 

php 脚本(url var)

<?php
session_start();
$_SESSION['test'] = $_POST['data'];
var_dump($_SESSION['test']);

?>

【问题讨论】:

  • 你能试试var_dumping $_POST 看看它的所有元素吗?还可以尝试更改您的变量名称,其中有很多名为data,(但这可能无法解决它)。
  • "在 PHP 脚本中 var_dump 返回的是NULL" ????我对这部分很好奇。你到底是怎么看这个的?如果您只是在浏览器中打开 PHP URL,您将使用未定义的值覆盖 $_SESSION['test']
  • 是的,我在执行 ajax 的站点上看不到输出,我通过在单独的选项卡上打开 php 脚本来检查它,所以我无法访问那里的发布数据。跨度>

标签: javascript php arrays ajax session


【解决方案1】:

你的success callback function 没有传入参数,试试改成这个,

success:function(data) {
   console.log(data);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 2017-12-01
    相关资源
    最近更新 更多