我正在尝试将变量传递给php会话变量,因此以后可以从其他函数访问它。我不确定,我可能有完全的方法。我想做的是将我的物品存放在某个地方,以便我可以在会话中的任何时间和任何地方访问它。
这就是我现在所拥有的:

$(".small-item-card .bookmark").click(function(e){
        e.preventDefault();
        let el_id = $(this).attr("element-id");

        $.ajax({
            type: 'post',
            url: '/session.php',
            data: {el_id: el_id},
            success:function(data) {
                console.log(data);
            }
        });


PHP-session.php

<?
session_start();

$element_id = (isset($_POST['el_id']) ? $_POST['el_id'] : "empty");

$_SESSION['element_ids'] = $element_id;

echo $_SESSION['element_ids'];

?>


当我打开session.php页面时,它会显示“空”。我究竟做错了什么?

最佳答案

这是因为当您打开session.php时,(isset($_POST['el_id']) ? $_POST['el_id'] : "empty");将运行,将$_SESSION['element_ids']更改为空。

您的代码可以正常工作。尝试将$_SESSION['element_ids']回显到主页,您将看到它包含正确的值。尝试使用类似方法进行快速调试,将其放在主页顶部。并且不要打开session.php

<?php
    session_start();
    echo (isset($_SESSION['element_ids'])) ? $_SESSION['element_ids'] : 'not yet set';
?>

关于javascript - 将JavaScript传递给Session变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52363632/

10-12 12:38
查看更多