即使在ajax调用中存在数据,JSON数组也会提供空数据

时间:2016-06-07 14:16:44

标签: javascript php jquery json ajax

在我的HTML页面上,我想逐个显示连续的推文。我的脚本中有两个函数,一个加载自身,另一个函数先调用。以下是我的代码:

<script type="text/javascript">
(function () {
	$.ajax({
		type:"post",
		url:"fetch_data.php",
		dataType:"json",
		async: false,
		data:{action:'onload'},
		success:function(response){
			$.each(response, function(key, item) {
				var li = '<li><div class="user-pic">'+item.img+'</div><div class="user-details"><h2><span>'+item.name+'</span> @'+item.screen_name+'</h2><p class="cheer-zidane">'+item.tweet+'</p></div></li>';
				$(li).hide().appendTo('.twitter-list').fadeIn('fast');
			});
		}
	});
	setInterval(display_later, 40000);
})();

function display_later() {

	console.log("called display");
	var i = 1;
	$.ajax({
		type:"post",
		url:"fetch_data.php",
		dataType:"json",
		data:{action:'later'},
		success:function(response){
			console.log(response);
				$.each(response, function(key, item) {
					if ( $('.twitter-list li').length == 10) {
						console.log("removed last "+i);
						$('.twitter-list li:last-child').remove();
						i = i + 1;
					}
					var li = '<li class="comefromtop"><div class="user-pic">'+item.img+'</div><div class="user-details"><h2><span>'+item.name+'</span> @'+item.screen_name+'</h2><p class="cheer-zidane">'+item.tweet+'</p></div></li>';
					$('.twitter-list').prepend(li).fadeIn("slow");
				});
		}
	});		
};

和fetch_data.php:

if($_POST['action'] == 'onload')
{
    //workes fine
}
if($_POST['action'] == 'later')
{
    $j = 0;
    $data1 = array();
    $result = mysqli_query($db,"SELECT * FROM tweet_mash WHERE is_active = 1 ORDER BY activate_update DESC LIMIT 0,10 ");
    $ispresent = @mysqli_num_rows($result);
    if($ispresent > 0)
    {
        while($row = mysqli_fetch_array($result))
        {
            if($row['is_display'] == 0){
                if($row['profile_image']!=""){
                    $img = str_replace("_normal", "", $row['profile_image']);
                    $thumbnail = '<image src="'.$img.'" style="height: 100%;width: inherit;">';
                }else{
                    $thumbnail ="";
                }
                $data1[] = array('img'=>$thumbnail,'screen_name'=>$row['screen_name'],'name'=>$row['name'],'tweet'=>$row['tweet']);
                $update = mysqli_query($db,"UPDATE tweet_mash SET is_display = 1 WHERE id = ".$row['id']." ");
                $j = $j+1;
            }else{
                $j = $j;
            }
        }
        echo json_encode($data1);
        exit;
    }
}

问题:当display_later()函数连续运行时,它会点击fetch_data.php。我的问题是,即使mysql db中存在数据,json数组也会给出空结果。我确定我的代码到达if($row['is_display'] == 0){ $update$update反映在数据库中)

我的ajax调用是错还是php代码。请帮忙。

0 个答案:

没有答案