【发布时间】: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。
当我使用<form> 标签时,它会将我带到那里,但它会显示此错误:
未定义的索引:元素
我确定我看错了,解释错了。 有人可以帮我理解我应该怎么做才能继续使用 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