【问题标题】:Load PHP Session through AJAX?通过 AJAX 加载 PHP 会话?
【发布时间】:2015-01-26 17:27:36
【问题描述】:

我想使用我在网上找到的 AJAX 脚本创建一个无限滚动,以便在 PHP 页面到达底部时加载它。

第一页将使用一个会话,该会话将由通过 ajax 加载的 php 页面打印。

我已经成功地这样做了,但我注意到这在第一次时不起作用,只有在我刷新页面一次之后,好像它无法第一次加载会话一样。我正在使用私人会话对此进行测试,以便模拟新用户的外观。

所以这里我有 index.php:

<script src="jquery-1.7-min.js"></script>
<?php
    session_start();
    $_SESSION['test1'] = '<br><br><br>content to be loaded';
?>
<div id="postswrapper">
    <div class="item">content</div>
    ...
    <div id="loadmoreajaxloader" style="display:none;"><center><img src="ajax-loader.gif" /></center></div>
</div>
---- footer content ----
<script type="text/javascript">
$(window).scroll(function()
{
    if($(window).scrollTop() == $(document).height() - $(window).height())
    {
        $('div#loadmoreajaxloader').show();
        $.ajax({
        url: "more-data.php",
        success: function(html)
        {
            if(html)
            {
                $("#postswrapper").append(html);
                $('div#loadmoreajaxloader').hide();
            }else
            {
                $('div#loadmoreajaxloader').html('<center>No more posts to show.</center>');
            }
        }
        });
    }
});
</script>

这里是more-data.php:

<?php
    session_start();
    print_r ($_SESSION['test1']);
?>

我需要在第一页上使用会话,因为我正在使用它在 ajax 启动之前加载更多内容。所以删除会话不是一种选择。

看起来会话第一次没有加载到“more-data.php”中,只有在我刷新页面之后。我该如何解决这个问题?

【问题讨论】:

  • 嗨,Damien,session_start() 在输出 HTML 之前转到顶部
  • @AhmedDaou 伙计,这太傻了,我把它移到

标签: php jquery ajax session infinite-scroll


【解决方案1】:

正如 Ahmed 在 cmets 中所说,session_start(); 需要放在 script 标签和任何其他 html 之前。我试过了,它无需刷新即可工作。感谢 Ahmed 的解决方案!

【讨论】:

    猜你喜欢
    • 2012-01-31
    • 2013-03-30
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多