index.php (不是确切的布局只是snippits)
<!-- TRACK LIST -->
<a name="trackList">
<div id="trackList" class="container">
<?php
include("api/displayTracks.php");
?>
</div>
// AJAX
function update(actionUrl, outUrl, div){
if (actionUrl != "") {
$.ajax({
url: actionUrl,
cache: false,
success: function(html){
$.ajax({
url: outUrl,
cache: false,
success: function(html){
$(div).html(html);
},
});
},
});
} else {
$.ajax({
url: outUrl,
cache: false,
success: function(html){
$(div).html(html);
},
});
}
}
function updateTracks() {
update("", "api/displayTracks.php", "#trackList");
}
setInterval(updateTracks, 5000);
我构建函数更新以尝试修复此问题,之前我在许多函数中都有AJAX调用,但同样的问题仍然存在。
上面的代码应该每隔5秒用新内容更新#trackList
......但是我的问题是它没有做任何事情,我对AJAX没有多少经验,这是我的知识范围。
alert('test')
并且每5秒成功调用一次。所以我把它缩小到了ajax。
displayTracks.php (其中使用的函数包含在index.php的顶部)
<?php
// display tracks
function displayLatestTracks($limit) {
$sql = sql("SELECT * FROM tracks WHERE (rank > 0) AND (isSet = 0) ORDER BY date DESC LIMIT ".$limit);
if (mysql_num_rows($sql) != 0) {
while ($row = mysql_fetch_assoc($sql)) {
if ($row['link'] != "") {
echo '<div style="background-color:rgb('.randColor().');" id="track-'.$row['id'].'" class="track">';
echo '<iframe width="100%" height="20" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url='.$row['link'].'&color=b60000&inverse=true&auto_play=false&liking=true&show_user=true"></iframe>';
echo '</div>';
}
}
}
}
// display albums
function displayLatestAlbums($limit) {
$sql = sql("SELECT * FROM tracks WHERE (rank > 0) AND (isSet = 1) ORDER BY date DESC LIMIT ".$limit);
if (mysql_num_rows($sql) != 0) {
while ($row = mysql_fetch_assoc($sql)) {
if ($row['link'] != "") {
echo '<div style="background-color:rgb('.randColor().');" id="album-'.$row['id'].'" class="album">';
echo '<iframe width="100%" height="450" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url='.$row['link'].'&color=c50000&auto_play=false&hide_related=false&show_comments=true&show_user=true&liking=true&show_reposts=false"></iframe>';
echo '</div>';
}
}
}
}
echo '<p class="title">Track List</p>';
displayLatestAlbums(3);
displayLatestTracks(10);
?>
sql fucntion:
function sql($query) {
$sql = mysql_query(strip_tags($query));
if(!$sql) {
echo "Error processing query".mysql_error();
}
return $sql;
}
答案 0 :(得分:0)
AJAX没有任何问题。
我在我的php文件中安排include()
的方式剥夺了我的AJAX代码获得直接的mysql连接,导致回调为空并且不包含任何数据。