我遇到了 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;
}
答案 0 :(得分: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;
}