Применение сеанса к этому коду - PullRequest
1 голос
/ 04 марта 2012

У меня есть этот код, который берет данные из моей базы данных в стиле ajax.например 9 за один раз, когда я хочу, чтобы больше отображалось, я нажимаю кнопку «больше».Проблема возникает, когда я покидаю страницу.Когда я возвращаюсь, даже если я использую кнопку «Назад», мне нужно снова нажать кнопку «Еще», чтобы добраться до того места, где я находился.

Существует ли способ применения сеансов для запоминания последнего счета

Javascriptна той же странице, что и loadmore.php

    <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>;

Далее идет php, который называется ajax_more.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
}
?>

если кто-нибудь может пролить свет на это.Я был бы очень признателен

Стив

Ответы [ 2 ]

0 голосов
/ 04 марта 2012

Я недавно реализовал такую ​​настройку: для решения этой проблемы я поместил код настройки сеанса в сценарий AJAX, а затем в основном / вызывающем сценарии использовал эти данные для соответствующей генерации содержимого всякий раз, когда вы вернуться на эту страницу. Если вам нужно сделать это в сценарии JavaScript, сделайте это сценарием PHP и измените тип содержимого на text / javascript (или любой другой тип MIME), а затем вы можете динамически настроить источник JavaScript с помощью PHP, Как и в случае с HTML ... Хотя этот подход работал очень хорошо, в конечном итоге я остановился на чисто динамическом решении JS - без переменных сеанса - потому что мои настройки никогда не требовали перехода от одной и той же страницы.

0 голосов
/ 04 марта 2012

Javascript имеет возможность чтения / записи файлов cookie.Например:

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

Здесь есть несколько полезных функций JavaScript для создания, чтения и удаления файлов cookie: http://www.quirksmode.org/js/cookies.html

Здесь также есть несколько хороших ссылок на SO:*

javascript cookie, небольшая помощь пожалуйста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...