AJAX提供问题..没有错误,没有警告,没有

时间:2011-03-21 01:07:23

标签: php jquery html ajax

我遇到了jQuery脚本的问题.. 该脚本显示来自Mysql的帖子以及一个检查更多内容的AJAX div。 现在我的问题。代码应该可以正常工作,但是在运行时我什么也没得到。没有错误,没有通知,Mysql很好,但什么都没有。有人能发现任何错误吗? ..或任何可能导致这种情况的事情?

这是我的代码:

 <?php
/* settings */  
session_start();  
$number_of_posts = 5; //5 posts will load at a time  
$_SESSION['posts_start'] = $_SESSION['posts_start'] ? $_SESSION['posts_start'] : $number_of_posts; //where we should start
    /* loading of stuff */
    if(isset($_GET['start'])) {
        /* spit out the posts within the desired range */
        echo get_posts($_GET['start'],$_GET['desiredPosts']);
        /* save the user's "spot", so to speak */
        $_SESSION['posts_start']+= $_GET['desiredPosts'];
        /* kill the page */
        die();
    }

    /* 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);
        $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 domain = 'http://davidwalsh.name/';
            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
                                //generate the HTML
                    .html('     <td class=\"style1\" colspan=\"2\" >&nbsp;<span class=\"style6\">' + post.username + '<\/span>"');
                    .html('                             <span class=\"style2\">NAME<\/span><\/td><\/tr><tr>');
                    .html('                                <td class=\"style3\" style=\"width: 67px\">Thumnail<\/td>');
                    .html('                                <td class=\"style5\"><p class="item_content">' + post.item_content + '<\/td><\/tr><tr>');
                    .html('                                <td class=\"style7\" colspan=\"2\">&nbsp;Respond (244) Like (12)<\/td><\/tr><tr>');
                    .html('                                <td class=\"style7\" colspan=\"2\">&nbsp;<\/td>');
                    .html('                                <\/table>');
                    .html('                      ');
                    .html('');
                    })

                    //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>

您可以提供的任何帮助都很棒:D谢谢。

1 个答案:

答案 0 :(得分:-1)

var domain ='http://davidwalsh.name/';

在这里,我不知道如果这是你的工作网站,那就是真相:你不能使用AJAX发布到除你工作的网站之外的其他网站。这是出于安全原因。