通过 AJAX 加载 PHP 会话?
Load PHP Session through AJAX?
我想使用我在网上找到的 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>
还有更多-data.php:
<?php
session_start();
print_r ($_SESSION['test1']);
?>
我需要在第一页上使用会话,因为我在 ajax 开始之前用它来加载更多内容。所以删除会话不是一个选项。
似乎第一次在 "more-data.php" 中没有加载会话,只有在我刷新页面后才加载。我该如何解决这个问题?
正如 Ahmed 在评论中所说的那样,session_start();
需要位于脚本标记和任何其他 html 之前。我试过了,它无需刷新即可工作。感谢艾哈迈德的解决方案!
我想使用我在网上找到的 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>
还有更多-data.php:
<?php
session_start();
print_r ($_SESSION['test1']);
?>
我需要在第一页上使用会话,因为我在 ajax 开始之前用它来加载更多内容。所以删除会话不是一个选项。
似乎第一次在 "more-data.php" 中没有加载会话,只有在我刷新页面后才加载。我该如何解决这个问题?
正如 Ahmed 在评论中所说的那样,session_start();
需要位于脚本标记和任何其他 html 之前。我试过了,它无需刷新即可工作。感谢艾哈迈德的解决方案!