2011-02-15 4 views
1

사람, 내가 다른 페이지 게시물을로드 jQuery를 사용하고이 코드를 사용하여 5 초마다 헤이 : 여기어떻게에만 새 게시물의 JQuery와에 밀어 넣습니다

<script> 
    jQuery(function($){ 
    $('#loaddiv').show(); 
    }) 

    var auto_refresh = setInterval(
    function(){ 
    $('#loaddiv').hide().load('reload.php').show(); 
    }, 5000); 
</script> 

그리고이 reload.php입니다 :

<?php 
    session_start(); 

    ini_set('display_errors', 'On'); 
    error_reporting(E_ALL); 

    $mysql=mysql_connect('localhost','***','***'); 
    mysql_select_db('jmtdy'); 

    $result=mysql_query("select * from users where username='".$_SESSION['username']."'") or die(mysql_error()); 
    $dbarray=mysql_fetch_assoc($result); 

    $id=$dbarray['id']; 
    $result1=mysql_query("select * from friendship where userid='".$id."'") or die(mysql_error()); 
    $dbarray1=mysql_fetch_assoc($result1); 

    $userid=$dbarray1['friendid']; 
    $result2=mysql_query("select * from posts where userid='".$userid."' or userid='".$id."' ORDER BY id DESC LIMIT 20") or die(mysql_error()); 
    if(mysql_num_rows($result2) >=1) { 
    while($dbarray2=mysql_fetch_assoc($result2)) { 
     echo '<div class="homestatus"><a class="homeusername" href="account.php?user='.$dbarray2['username'].'">' 
     .$dbarray2['fname'].' '.$dbarray2['lname'].':<a><p class="homepost">' 
     .$dbarray2['post'].'</p><p class="hometime">'.$dbarray2['time'].'</p></div>'; 
    } 
    } 
    else { 
     echo '<p class="homestatus">No new updates from your friends.</p>'; 
    } 
?> 

완벽하게 작동하고 있지만 제 질문은 joraery를 사용하여 질문에서 새로운 답변으로 Quora가 어떻게 움직이는 지 새로운 결과로 어떻게 밀어 넣을 수 있습니까?/시간은/var/www가에서 :

<script> 

    jQuery(function($){ 
    $('#loaddiv').show(); 
    }) 

    var auto_refresh = setInterval(
    function(){ 
    var timestamp = new Date().getTime() - 5000; 
    // get posts for the last 5 seconds only 
    var new_posts = $.load('reload.php?time=' + timestamp); 
    $('#loaddiv').append(new_posts).show('slow'); 
    }, 5000); 
</script> 

을이 :


가 좋아 나는이 함께했다

<?php 
    session_start(); 
    ini_set('display_errors', 'On'); 
    error_reporting(E_ALL); 
    $mysql=mysql_connect('localhost','***','***'); 
    mysql_select_db('jmtdy'); 
    $result=mysql_query("select * from users where username='".$_SESSION['username']."'") or die(mysql_error()); 
    $dbarray=mysql_fetch_assoc($result); 
    $id=$dbarray['id']; 
    $result1=mysql_query("select * from friendship where userid='".$id."'") or die(mysql_error()); 
    $dbarray1=mysql_fetch_assoc($result1); 
    $userid=$dbarray1['friendid']; 
    $time=mysql_real_escape_string($_GET['time']); 

    $result2=mysql_query("select * from posts where userid='".$userid."' or userid='".$id."' and time='".$time."' ORDER BY id DESC LIMIT 20") or die(mysql_error()); 
if(mysql_num_rows($result2) >=1) { 
while($dbarray2=mysql_fetch_assoc($result2)) { 
    echo '<div class="homestatus"><a class="homeusername" href="account.php?user='.$dbarray2['username'].'">'.$dbarray2['fname'].' '.$dbarray2['lname'].':<a><p class="homepost">'.$dbarray2['post'].'</p><p class="hometime">'.$dbarray2['time'].'</p></div>'; 
    } 
    } 
    else { 
     echo '<p class="homestatus">No new updates from your friends.</p>'; 
} 

?> 

그러나 나는이 오류가 : 공지 사항 : 정의되지 않은 인덱스를 Cliproid/reload.php on line 13

답변

0

Quora가 어떻게 작동하는지 모르지만 대신 jQuery에서 효과를 사용하십시오. 일반 show() 함수. '애니메이션'또는 http://api.jquery.com/category/effects/

<script> 
    jQuery(function($){ 
    $('#loaddiv').show(); 
    }) 

    var auto_refresh = setInterval(
    function(){ 
    var timestamp = new Date().getTime() - 5000; 
    // get posts for the last 5 seconds only 
    var new_posts = $.get('reload.php?time=' + timestamp); 
    $('#loaddiv').append(new_posts).show('slow'); 
    }, 5000); 
</script> 
+0

그러나 모든 게시물을 애니메이션으로 적용하면 어떻게 움직일 수 있습니까? 새 게시물 만 애니메이션으로 만들려면 어떻게해야합니까? –

+0

그런 다음 모든 게시물을 업데이트하지 말고 새로운 게시물을 추가하고 .append (new_post) .show ('slow');를 사용하십시오. 그리고 whenre questing post는 요청에 parm을 추가합니다. time = [current_timestamp] 그리고 다음 번에이 타임 스탬프를 사용하여 새로운 포스트를 얻고 타임 스탬프를 현재 타임 스탬프로 설정합니다. 혼란 스럽습니다. . –

1

나는 어쩌면 유일한 (AUTO_INCREMENT) ID 또는 스크립트 어딘가에 저장되어있는 타임 스탬프를 사용하는 것이 다른 무언가를 시도하십시오.

그런 다음 식별자를 사용하여 결과> 마지막 ID/타임 스탬프 만 가져옵니다. 그 결과와 함께 $ ('# loaddiv') .prepend (data) .fadein()을 사용하여 해당 데이터를 목록의 처음 (맨 위)에 삽입하십시오.

관련 문제