【问题标题】:jquery ajax post onclick - php session variablejquery ajax post onclick - php会话变量
【发布时间】:2013-10-25 22:06:12
【问题描述】:

在我的主页上,我使用的是 maximage 全屏图像插件。当有人点击 具体链接(产品页面),我必须找出幻灯片中的当前图像是什么 并将其设置为产品索引页面中的背景图片。

当有人单击主页上的“/producten”链接并将其存储为会话变量时,我正在进行 ajax 调用。

问题是,它没有进行 ajax 调用,我在 apache 日志文件中看不到 POST 请求,只有“/producten”页面的 GET 请求。它会快吗?我不能在发出 GET 请求之前发出 POST 请求吗?我无法确定它。这是我的代码:

首页索引:

jQuery(document).ready(function($)
{
    $("a[href='/producten']").click(function() {
        var best;
        var maxz;
        $('.mc-image').each(function() {
            var z = parseInt($(this).css('z-index'), 10);
            if (!best || maxz<z) {
                best = this;        
                maxz = z;
            }
        });
        var bg_image = $(best).css('background-image');
        bg_image     = bg_image.replace('url(','').replace(')','');

        $.post('/producten', {bg_image:bg_image});
    });
});

bg_image 设置正确,我用 console.log() 对其进行了测试,得到了输出。

/产品索引:

<?php
    session_start();

    $_SESSION['bg_image'] = $_POST['bg_image'];
?>

【问题讨论】:

  • 开发工具的 Network 标签是什么意思?因此,您可以尝试将preventDefault() 放入您的click 事件中。
  • 尝试用 firebug 之类的方式分析网络标签
  • 感谢您指出 event.preventDefault() 和网络选项卡。插入 event.preventDefault() 时,它会发出 POST 请求。我创建了一个 check.php 文件,打印出 $_SESSION 变量并设置了它。但是当我删除 event.preventDefault() 时它不起作用,它是空的。似乎它会很快,甚至我正在自己的机器上开发它。会是什么?
  • 我只需将 bg_image 添加到 url,如果设置了 bg_image 则设置会话变量并重定向到普通 /producten
  • 在会话中设置此值可能会在用户打开您的网站有多个选项卡时将事情搞得一团糟……

标签: php jquery ajax session post


【解决方案1】:

在javascript中:

/* $.post('/producten', {bg_image:bg_image}); */
this.href = this.href + '?bg_image=' + escape(bg_image)

在php中:

if(isset($_GET['bg_image'])) {
  $_SESSION['bg_image'] = $_GET['bg_image'];
  header('Location: /producten');
  exit;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2012-04-30
    • 2021-01-07
    • 2013-02-09
    • 1970-01-01
    • 2017-09-20
    相关资源
    最近更新 更多