【问题标题】:Fail to pass an 2D array from JavaScript to php无法将二维数组从 JavaScript 传递到 php
【发布时间】:2018-07-07 23:05:33
【问题描述】:

我正在尝试使用 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 页面?

【问题讨论】:

  • 需要指定database.php文件的完整请求url。
  • 您为什么使用AJAX 发布数据然后将客户端重定向到该页面?此外,将客户端重定向到 php 页面也不会显示数组数据,因为客户端在重定向时不会发布数组。
  • window.location = "database.php" 使浏览器对该 URL 发出 GET 请求,因此当然没有 POST 数据 ...
  • @kapilyadav 还是不行。
  • 如果您重定向并且从不显示返回的内容,您希望看到什么内容?

标签: javascript php arrays ajax


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-18
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多