2012-03-04 4 views
1

데이터베이스 Ajax 스타일의 데이터를 사용하는 코드가 있습니다. 예를 들어, 한 번에 9 번, 더 많이 표시하려면 더 많은 버튼을 누릅니다. 문제는 내가 페이지를 떠날 때 발생합니다. 내가 돌아 왔을 때 뒤로 버튼을 사용할지라도 나는 더 많은 버튼을 다시 눌러서 내가 어디에 있는지를 알아야한다.이 코드 부분에 세션 적용

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>; 
입니다

다음은 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 
} 
?> 

누구든이 부분에 불이 들어오는 경우. 나는

스티브

답변

0

자바 스크립트/쓰기 쿠키를 읽을 수있는 능력이 매우 greatful 일 것이다. 예를 들면 :

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

여기 쿠키를 생성, 읽기, 삭제에 대한 몇 가지 유용한 자바 스크립트 기능이 있습니다 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

+0

ill 고맙습니다;) –

+0

마지막 msgcount가 다른 PHP 페이지에 있기 때문에 ajax_more.php 어떻게 다시 loadmore.php로 호출합니까? –

0

최근에 이런 종류의 설정을 구현했습니다 : w 문제를 해결하기 위해 해본 모자는 세션 설정 코드를 AJAX 스크립트에 넣은 다음 주/호출 스크립트에서 해당 페이지로 다시 이동할 때마다 해당 데이터를 사용하여 적절하게 내용을 생성합니다. JavaScript 스크립트에서이 작업을 수행해야하는 경우이 스크립트를 PHP 스크립트로 만들고 content-type을 text/javascript (또는 MIME 유형이 무엇이든간에)로 변경 한 다음 PHP로 JavaScript 소스를 동적으로 설정할 수 있습니다. HTML에서와 마찬가지로 ...이 접근 방식은 훌륭하게 작동했지만 궁극적으로 세션 변수가없는 순전히 동적 인 JS 솔루션을 찾았습니다. 설치 프로그램에서 동일한 페이지를 탐색하지 않아도되기 때문입니다.

관련 문제