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 中的更新函数如下:

  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 回答