jquery 发送JavaScript数组到PHP与 AJAX 不工作

vaqhlq81  于 2023-08-04  发布在  jQuery
关注(0)|答案(2)|浏览(91)

我尝试使用$.post将JavaScript数组的内容发送到不同的页面,但它不起作用-相应的$_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>

字符串
设置了categoriesTab变量,一切似乎都正常。但是当我到第2页的时候,$_POST是空的...:

<?php

$array = [];

if (isset($_POST['categoriesActives'])) {
    $array = $_POST['categoriesActives'];
} else {
    $array = ['a', 'z', 'e', 'r'];
}

?>

s8vozzvw

s8vozzvw1#

您提出了两个请求:

  1. $.post('page2.php', ...page2.php发送一个 AJAX POST请求,其中包含您指定的POST数据。您可以通过检查浏览器开发人员工具中的网络选项卡来查看该请求。
  2. window.location.assign('https://dom.fr/page2/');使用普通GET请求将浏览器重定向到指定的URL。在这种情况下,$_POST为空,因为它是另一个请求。
qnakjoqk

qnakjoqk2#

您可以在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'];
 }

相关问题