我知道在这个论坛上已经多次询问过这个问题,但我想我错过了一些东西。或者也许是因为我不太了解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数组应该做些什么。
答案 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";
}
?>