AJAX加载更多的帖子脚本输出什么都没有,没有警告,没有通知,没有数据

时间:2011-03-24 00:08:31

标签: php javascript jquery mysql ajax

任何人都可以告诉我为什么这一切都没有输出......没有错误,没有通知。纳达。 我真的需要帮助,SQL细节没什么问题。代码目的是显示带有AJAX div的Mysql数据,可以加载更多帖子。如果有任何可能导致此问题,请在下面发布。谢谢!:) 源代码:

 <?php
    /* grab stuff */
    function get_posts($start = 0, $number_of_posts = 5) {
        /* connect to the db */
        $connection = mysql_connect('localhost','root','');
        mysql_select_db('draft2',$connection) or die(mysql_error()); 
        $posts = array();
        /* get the posts */
        $query = "SELECT item_id, username, item_content FROM updates ORDER BY update_time DESC LIMIT $start,$number_of_posts" or die(mysql_error()); 

        $result = mysql_query($query);
        while($row = mysql_fetch_assoc($result)) {
            preg_match("/<p>(.*)<\/p>/",$row['item_content'],$matches);
            $row['item_content'] = strip_tags($matches[1]);
            $posts[] = $row;
        }
        /* return the posts in the JSON format */
        return json_encode($posts);
    }

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  dir="ltr">
<head>



<style type="text/css">
   .style1 {
                                font-family: "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif;
                                background-image: url('images/banner.gif');
                        }
                        .style2 {
                                font-size: x-small;
                                color: #62D7D7;
                        }
                        .style3 {
                                text-align: center;
                        }
                        .style5 {
                                font-size: 12px;
                                font-family: "lucida grande", "tahoma", "verdana", "arial", "sans-serif"
                        }
                .style6 {
    font-family: "lucida grande", "tahoma", "verdana", "arial", "sans-serif";
}
.style7 {
    text-align: left;
    font-size: x-small;
    font-family: "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif;
    color: #0070B8;
}

        #load-more                  { background-color:#eee; color:#999; font-weight:bold; text-align:center; padding:10px 0; cursor:pointer; }
        #load-more:hover            { color:#666; }
        .activate                   { background:url(loadmorespinner.gif) 140px 9px no-repeat #eee; }

                </style>




    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="jquery.scrollTo-1.4.2.js"></script>
    <script type="text/javascript">
        //when the DOM is ready
        $(document).ready(function(){
            //settings on top
            var initialPosts = <?php echo get_posts(0,$_SESSION['posts_start']); ?>;
            //function that creates posts
            var postHandler = function(postsJSON) {
                $.each(postsJSON,function(i,post) {
                    //post url
                    var postURL = '' + domain + post.post_name;
                    var id = 'post-' + post.ID;
                    //create the HTML
                    $('<div></div>')
                    .addClass('post')
                    .attr('id',id)
                    //generate the HTML
                    .html('<a href="' + postURL + '" class="username">' + post.username + '</a><p class="item_content">' + post.item_content + '<br /><a href="' + postURL + '" class="post-more">Read more...</a></p>')
                    .click(function() {
                        window.location = postURL;
                    })
                    //inject into the container
                    .appendTo($('#posts'))
                    .hide()
                    .slideDown(250,function() {
                        if(i == 0) {
                            $.scrollTo($('div#' + id));
                        }
                    });
                }); 
            };
            //place the initial posts in the page
            postHandler(initialPosts);
            //first, take care of the "load more"
            //when someone clicks on the "load more" DIV
            var start = <?php echo $_SESSION['posts_start']; ?>;
            var desiredPosts = <?php echo $number_of_posts; ?>;
            var loadMore = $('#load-more');
            //load event / ajax
            loadMore.click(function(){
                //add the activate class and change the message
                loadMore.addClass('activate').text('Loading...');
                //begin the ajax attempt
                $.ajax({
                    url: 'jquery-version.php',
                    data: {
                        'start': start,
                        'desiredPosts': desiredPosts
                    },
                    type: 'get',
                    dataType: 'json',
                    cache: false,
                    success: function(responseJSON) {
                        //reset the message
                        loadMore.text('Load More');
                        //increment the current status
                        start += desiredPosts;
                        //add in the new posts
                        postHandler(responseJSON);
                    },
                    //failure class
                    error: function() {
                        //reset the message
                        loadMore.text('Oops! Try Again.');
                    },
                    //complete event
                    complete: function() {
                        //remove the spinner
                        loadMore.removeClass('activate');
                    }
                });
            });
        });
    </script>
</head>
<body>

    <!-- Widget XHTML Starts Here -->
    <div id="posts-container">
        <!-- Posts go inside this DIV -->
        <div id="posts"></div>
        <!-- Load More "Link" -->
        <div id="load-more">Load More</div>
    </div>
    <!-- Widget XHTML Ends Here -->

</body>
</html>

我之前确实发过这个问题,我知道这会让你们生气。但我尝试修复它一段时间,但我只是不像在这里的人那样有经验,所以我回来了。请不要恨我。

2 个答案:

答案 0 :(得分:1)

@ user663049:我认为你的问题就在这一行 -

$query = "SELECT item_id, username, item_content FROM updates ORDER BY update_time DESC LIMIT $start,$number_of_posts" or die(mysql_error()); 

应该是 -

$query = "SELECT item_id, username, item_content FROM updates ORDER BY update_time DESC LIMIT " . $start . ", " . $number_of_posts;

$result = mysql_query($query) or die(mysql_error());

答案 1 :(得分:0)

如果因为Web服务器配置而没有显示任何内容。您可以尝试在PHP块的开头插入以下内容,这样您至少可以看到错误并进行调试

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
?>