【问题标题】:Use Javascript array in PHP在 PHP 中使用 Javascript 数组
【发布时间】:2016-11-03 22:21:40
【问题描述】:

我知道这个问题在这个论坛上已经被问过好几次了,但我想我错过了一些东西。或者可能是因为我不太了解 JSON/AJAX。

事情就是这样。
我在一个页面上得到了一些 javascript/JQuery 代码,比如在 index.php 上(还没有在单独的 JS 文件中),它可以让您将任何数字放入从 1 到 10 的数组中。如果它已经在其中,它将被删除如果再次点击。

现在我想将那个 JS 数组传递给 PHP,所以我可以用它创建表。

这就是我所做的。

$(".Go").click(function() {
    var enc = JSON.stringify(tableChoice);
    $.ajax({
        method: 'POST',
        url: 'calc.php',
        data: {
            elements: enc
        },
        success: function(data) {
            console.log(enc);
        }
    });
});

在我的 calc.php 中,我得到了这个来获取 PHP 的值。

<?php
    $data = json_decode($_POST['elements'],true);
    echo $data;
?>

现在是菜鸟问题:
如果我点击我的 (.Go) 按钮,究竟会发生什么?
因为 console.log 让我看到了正确的值,但是我如何访问它呢?页面 (index.php) 不会自动转到 calc.php。
当我使用&lt;form&gt; 标签时,它会将我带到那里,但它会显示此错误:

未定义的索引:元素

我确定我看错了,解释错了。 有人可以帮我理解我应该怎么做才能继续使用 PHP 中的 JS 数组。

【问题讨论】:

  • 您确定不要console.log(data)
  • Ajax 或异步 JavaScript 和 XML 是为交互式网站设计的概念,其中数据可以发送到服务器并从服务器收集,而无需刷新网站。您的浏览器不应该导航到calc.php。相反,calc.php 将数据回显到您的index.php 文件中。 $data 然而这里是一个数组。所以你不会得到返回的实际值。试试var_dump($data); 看看我的意思。
  • 我认为您需要阅读有关 AJAX 工作原理的教程。 AJAX 的全部意义在于它不会重新加载页面。它只是发回响应,Javascript 代码决定如何处理它。如果要在页面上显示结果,请使用 DOM 或 jQuery 方法,例如 $("#id").text(data)
  • 感谢您的回答!现在我明白了它背后的含义,我让它工作了。

标签: javascript php jquery arrays ajax


【解决方案1】:

对于 XHR 请求,您无需重新加载页面。使用您的 $.ajax 方法,您可以将数据发布到服务器并接收回信息。由于您可以在控制台中看到信息,因此触发了成功方法。

您可能想看看您的 DevTools,例如 Chrome。当您打开网络选项卡并在 XHR 上进行过滤时,您会看到会发生什么。您可以通过查看您发送和接收的数据来进一步检查您的 XHR。

所以我问你的问题是:你想在 onSuccess() 上发生什么?您从后端收到的数据应该如何处理?

【讨论】:

    【解决方案2】:

    在 JavaScript 中:

    $(".Go").click(function() {
        var enc = JSON.stringify(tableChoice);
        $.ajax({
            method: 'POST',
            url: 'calc.php',
            data: {
                "elements="+enc;
            },
            success: function(data) {
                console.log(data);// You can use the value of data to anywhere.
            }
        });
    });
    

    在 PHP 中:

    <?php
    if(isSet($_POST[elements]))
    {
        $data = json_decode($_POST['elements'],true);
        echo $data;
    }
    else
    {
        echo "Elements not set";
    }
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 2016-10-09
      相关资源
      最近更新 更多