php - 如何使用 jQuery AJAX $.post 来存储 PHP $_SESSION 变量?

标签 php jquery ajax forms session

帮助!

我在使用 AJAX 为我工作时遇到了麻烦。我有一个分页画廊,每个图像下方都有复选框,如果用户在页面之间移动,我需要将复选框值存储在 session 变量中,因此当他们随时提交表单时,它将包括所有页面的所有选中值。

我正在使用这个 jQuery 代码:

$(document).ready(function() {
    $(".gal-nav").click(function() {
        $.post("form-data-holder.php", $("#gallery-form").serialize());
    });
});

form-data-holder.php 文件是这样写的:

<?php

    $_SESSION['saved'] = "true";

    foreach ($_POST as $key=>$value ) {
        if ( $key !== "submit" ) {
            $value = htmlentities(stripslashes(strip_tags($value)));
            $_SESSION[$key] = $value;
        }
    }

?>

我有两个问题——

1) 如何从 serialize() 函数中获取复选框值?我认为我需要做更多的事情,比如 value[] 来获取数组,然后我想将每个数组存储为单独的 session 变量——除非我可以将数组存储为 $_SESSION 变量?

2) 在我搞砸之前,我添加了那行 $_SESSION['saved'] = "true";到 php 脚本,然后我在我的图库页面上回显 $_SESSION 键和值,以查看 AJAX 请求是否有效。不是。当我返回页面时,$_SESSION['saved'] 没有添加到回显的 $_SESSION 变量列表中。

任何帮助将不胜感激!!

最佳答案

您需要在 form-data-holder.php 文件中调用 session_start()。

每次您进行 ajax 调用时,您都在从服务器请求一个新的/新鲜的页面,而服务器不知道原始页面中设置的任何变量。

关于php - 如何使用 jQuery AJAX $.post 来存储 PHP $_SESSION 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1572888/

相关文章:

Javascript 不向 php 发布信息

php - 检查每个字母并为每个字母写文本

javascript - 如何在弹出的 fancybox 上使用按钮附加 Click 事件>

javascript - 单击另一个单选按钮后,单选按钮保持选中状态

php - 无序列表-列表项位置

php - 我尝试使用 ajax 和 symfony 上传文件

javascript - 如何在 Zend Framework 2 中通过 AJAX 表单上传文件?

javascript - JQuery 中的字符串比较

php - 如何检查字符串是否包含 zalgo 文本?

php - 查询根据特定日期从数据库中选择数据并计算有多少行?