无法将2D数组从JavaScript传递到php

时间:2018-01-29 09:32:44

标签: javascript php arrays ajax

我正在尝试使用Ajax将2D数组从JavaScript传递给PHP。 Ajax表示它是成功的但是在重定向到PHP页面之后,但是在PHP页面中没有设置数据。我尝试过两种方法,但两种方法都无法成功发布数组。

数组看起来像:

num = [["StringA",0], ["StringB",1], ["StringC",2]];

这是我在JavaScript中尝试的第一种方法:

$.ajax({
    type: "POST",
    url: "database.php",
    contentType: 'application/json',            
    processData: false,
    data: { array : JSON.stringify(num) },
    success: function()
    {
        window.location = "database.php";
    }
 });

我也试过这个:

$.post("database.php", {array: num})
        .done(function(data){
        window.location = "database.php";
    });

在database.php中:

<?php
if (isset($_POST["array"])){
    echo "Data is set";
    print_r($array);
}
?>

它们都可以成功重定向到database.php,但它们都没有显示在屏幕上。

我不熟悉Ajax。如何在发送数组后立即将数组发布到php页面?

1 个答案:

答案 0 :(得分:-1)

echo "Data is set";将文本返回给ajax请求。 你可以在控制台中看到它

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

当您通过window.location重定向到database.php $_POST为空并且不显示任何内容时,因为window.location只是设置了Url而不是发送参数。 尝试使用表单提交在php文件中发送您的数据。