提问人:carpeDiem 提问时间:7/18/2023 最后编辑:Sabin ChackocarpeDiem 更新时间:7/19/2023 访问量:48
使用 ajax 将 JavaScript 数组发送到 Php 不起作用
Sending JavaScript array to Php with ajax not working
问:
我正在尝试使用 将 JavaScript 数组的内容发送到不同的页面,但它不起作用 - 没有设置相应的...$.post
$_POST
有人可以解释我怎么了吗?
这是第 1 页上的 Javascript 代码:
<script type="text/javascript">
var i = sessionStorage.length;
var categoriesTab = [];
for (let j = 0; j < i; j++) {
if (sessionStorage.getItem(sessionStorage.key(j)) == 'active') {
categoriesTab.push(sessionStorage.key(j));
}
}
const liste = document.getElementById('liste');
liste.addEventListener('click', function (event){
event.preventDefault();
if (window.location.href == 'https://dom.fr/page1/'){
$.post(
'page2.php',
{
categoriesActives : categoriesTab
}
)
}
window.location.assign('https://dom.fr/page2/');
});
</script>
变量已设置,一切似乎都正常工作。
但是当我到达第 2 页时,是空的...... :categoriesTab
$_POST
<?php
$array = [];
if (isset($_POST['categoriesActives'])) {
$array = $_POST['categoriesActives'];
} else {
$array = ['a', 'z', 'e', 'r'];
}
?>
答:
1赞
cebe
7/18/2023
#1
您正在提出两个请求:
$.post('page2.php', ...
使用您指定的 POST 数据发送 AJAX POST 请求。您可以通过检查浏览器开发人员工具中的“网络”选项卡来查看该请求。page2.php
window.location.assign('https://dom.fr/page2/');
使用普通的 GET 请求将浏览器重定向到指定的 URL。在这种情况下,$_POST 是空的,因为它是另一个请求。
评论
0赞
carpeDiem
7/18/2023
好的,谢谢!对于 1.我看到了它,它运行正常;但是,如何在不提出第二个请求的情况下将用户重定向到第 2 页?
0赞
cebe
7/20/2023
如果你只想让用户看到第二页,你为什么要发出 AJAX 请求?为什么不发送普通的 POST 请求?
0赞
DannyP1
7/18/2023
#2
您可以将数组保存在 page2.php
$_SESSION['my-array'] = $_POST['categoriesActives'];
接下来像您一样重定向用户,但重定向到 page3.php
window.location.assign('https://dom.fr/page3/');
在page3.php中,你得到这个数组:
$array = [];
if (isset($_SESSION['my-array'])) {
$array = $_SESSION['my-array'];
unset($_SESSION['my-array']);
} else {
$array = ['a', 'z', 'e', 'r'];
}
评论
categoriesTab