在PHP中使用Javascript数组

时间:2016-11-03 22:21:40

标签: javascript php jquery arrays ajax

我知道在这个论坛上已经多次询问过这个问题,但我想我错过了一些东西。或者也许是因为我不太了解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 当我使用<form>标记时,它会将我带到那里,但它会显示此错误:

未定义的索引:元素

我确信我正在以错误的方式看待这一点,并将其解释错误。 有人可以帮我理解我在PHP中继续使用JS数组应该做些什么。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

在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";
}

?>