【问题标题】:Applying session to this piece of code将会话应用于这段代码
【发布时间】:2012-03-04 12:28:43
【问题描述】:

我有这段代码从我的数据库 ajax 样式中获取数据。例如一次 9 个,当我想要更多显示时,我按下更多按钮。当我离开页面时出现问题。当我返回时,即使我使用返回按钮,我也必须再次按下更多按钮才能到达我所在的位置。

有没有办法应用会话来记住最后一次计数

与 loadmore.php 在同一页面上的 Javascript

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
$(function()
{
$('.more').live("click",function()
{
var ID = $(this).attr("id");
if(ID)
{
$("#more"+ID).html('<img src="moreajax.gif" />');

$.ajax({
type: "POST",
url: "ajax_more.php",
data: "lastmsg="+ ID,
cache: false,
success: function(html){
$("ol#updates").append(html);
$("#more"+ID).remove(); // removing old more button
}
});
}
else
{
$(".morebox").html('The End');// no results
}

return false;
});
});
</script>

这是主要的php脚本loadmore.php

    <div id='container'>
<ol class="timeline" id="updates">

<?php
include('config.php');
$sql=mysql_query("select * from messages ORDER BY msg_id DESC LIMIT 9");
while($row=mysql_fetch_array($sql))
{
$msg_id=$row['msg_id'];
$message=$row['message'];
?>
<li>
<?php echo $message; ?>
</li>
<?php } ?>
</ol>

//More Button here $msg_id values is a last message id value.
<div id="more<?php echo $msg_id; ?>" class="morebox">
<a href="#" class="more" id="<?php echo $msg_id; ?>">more</a>
</div>

</div>;

接下来是名为 ajax_more.php 的 php

   <?php
include("config.php");
if(isSet($_POST['lastmsg']))
{
$lastmsg=$_POST['lastmsg'];
$lastmsg=mysql_real_escape_string($lastmsg);
$result=mysql_query("select * from messages where msg_id<'$lastmsg' order by msg_id desc limit 9");
while($row=mysql_fetch_array($result))
{
$msg_id=$row['msg_id'];
$message=$row['message'];
?>
<li>
<?php echo $message; ?>
</li>
<?php
}
?>

//More Button here $msg_id values is a last message id value.
<div id="more<?php echo $msg_id; ?>" class="morebox">
<a href="#" id="<?php echo $msg_id; ?>" class="more">more</a>
</div>
<?php
}
?>

如果有人能对此有所启发。我会很感激的

史蒂夫

【问题讨论】:

    标签: php ajax session


    【解决方案1】:

    Javascript 具有读取/写入 cookie 的能力。例如:

    document.cookie =
        'msgCount=9; expires=Sun, 4 Mar 2012 20:47:11 UTC; path=/';
    

    这里有一些用于创建、读取和擦除 cookie 的有用 javascript 函数:http://www.quirksmode.org/js/cookies.html

    这里也有一些关于 SO 的很好的参考资料:

    javascript cookie, little help please

    What is the "best" way to get and set a single cookie value using JavaScript

    【讨论】:

    • 因为最后一个 msgcount 在另一个 php 页面 ajax_more.php 我如何将其调用回 loadmore.php
    【解决方案2】:

    我最近实现了这种设置:为了解决这个问题,我将会话设置代码放入 AJAX 脚本中,然后在主/调用脚本中,使用该数据来适当地生成内容导航回该页面。如果您需要在 JavaScript 脚本中执行此操作,请将其设为 PHP 脚本并将内容类型更改为 text/javascript(或任何 MIME 类型应该是),然后您可以使用 PHP 动态设置 JavaScript 源,就像使用 HTML 一样...虽然这种方法效果很好,但最终我选择了一个纯动态 JS 解决方案 - 没有会话变量 - 因为我的设置从未要求您离开同一页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-06
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2018-10-28
      • 2016-06-27
      相关资源
      最近更新 更多