2

jquery scrollextendプラグインに問題があります。目的は、load_messages.php からいくつかの html 要素を取得し、それを html ページに挿入することでした。問題は、html ページをリロードすると (つまり、load_messages.php を複数回呼び出すと)、エラーが発生することです。

注意: 未定義の変数: functions.php のデータ。

PHP変数 $data が以前に定義されているため、この問題の原因を正確に把握できませんでした。誰でも助けてくれますか?

jquery コードを以下に示します。

//scroll
$('.scroll_container').scrollExtend(
        {
            'target': '#wall_container',
            'url': 'load_messages.php',


        }
    );

load_messages.php には次のコードが含まれています(不要なコードブロックを省略しました):

<?php
include_once 'functions.php';

$user_id=$_SESSION['user_id'];
$Wall = new Wall_Updates();
$table="friends".$user_id;
$updatesarray=$Wall->Updates($table,$user_id,$upper_limit,$lower_limit);
?>

function.php の update 関数は次のとおりです。

  public function Updates($table,$user_id,$upper_limit,$lower_limit) 
{

    $query = mysql_query("SELECT user.user_id, first_name, post_content,post_id,UNIX_TIMESTAMP( created ) AS time
                          FROM user, posts
                          WHERE (
                          user.user_id
                          IN (

                          SELECT friends_id
                          FROM $table)
                          OR user.user_id =$user_id)
                          AND user.user_id = posts.user_id
                          order by post_id desc
                          LIMIT $lower_limit , $upper_limit") or die(mysql_error());
     while($row=mysql_fetch_array($query))
     {
    $data[]=$row;
      }
    return $data;

}
4

1 に答える 1

0

while ループ内で $data を初期化しています。つまり、ループ外では使用できません。ループからの値を格納する場合は、ループの外側で変数を初期化します。

public function Updates($table,$user_id,$upper_limit,$lower_limit) 
{

    $query = mysql_query("SELECT user.user_id, first_name, post_content,post_id,UNIX_TIMESTAMP( created ) AS time
                          FROM user, posts
                          WHERE (
                          user.user_id
                          IN (

                          SELECT friends_id
                          FROM $table)
                          OR user.user_id =$user_id)
                          AND user.user_id = posts.user_id
                          order by post_id desc
                          LIMIT $lower_limit , $upper_limit") or die(mysql_error());

     $data = array();
     while($row=mysql_fetch_array($query))
     {
         $data[]=$row;
     }
     return $data;

}
于 2012-09-05T16:50:43.800 に答える