AJAX未知问题

时间:2014-11-05 16:53:04

标签: javascript php jquery ajax

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'].'&amp;color=b60000&amp;inverse=true&amp;auto_play=false&amp;liking=true&amp;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'].'&amp;color=c50000&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;liking=true&amp;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;
}

1 个答案:

答案 0 :(得分:0)

AJAX没有任何问题。 我在我的php文件中安排include()的方式剥夺了我的AJAX代码获得直接的mysql连接,导致回调为空并且不包含任何数据。