我遇到了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\" > <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\"> Respond (244) Like (12)<\/td><\/tr><tr>');
.html(' <td class=\"style7\" colspan=\"2\"> <\/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谢谢。
答案 0 :(得分:-1)
var domain ='http://davidwalsh.name/';
在这里,我不知道如果这是你的工作网站,那就是真相:你不能使用AJAX发布到除你工作的网站之外的其他网站。这是出于安全原因。