【问题标题】:ajax/jQuery Youtube playlist pushajax/jQuery Youtube 播放列表推送
【发布时间】:2015-05-14 11:04:40
【问题描述】:

所以我目前有这个 PHP 脚本来获取在 mySQL 数据库中设置的 Youtube IDS。这个 PHP 脚本列出了数据库中所有的 Youtube ID。

PHP

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "songrequests";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "SELECT * FROM test";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "song: " . $row["link"]. "<br>";
        }
    } else {
        echo "0 results";
    }
    $conn->close();
    ?>

好的,然后,我发现了这个将 Youtube ID 推送到播放列表的脚本,可以在 jsFiddle 找到这个脚本(完整演示 here

所以基本上,我想要实现的是将 ID 从我的数据库推送到列表中。我创建了一个 json,其中列出了所有 ID here

使用这个 ajax,我试图将 ID 从 json 推送到列表中,但它似乎不起作用。

JS

       $.ajax({
            url: 'http://dj.aotikbot.tv/songlist.php',
            type: 'GET',
            dataType: 'json',                                                                                                                                                                                                
        success: function(data) { 

        console.log(data.songs.length); 
        if (data.songs.length != 0) {

                for (var x = 0; x < data.songs.length; x++) {
                ytplayer_playlist.push("'" + data.songs[x].link + "'");
            }

            } 

        },                                                                                                                                                                                       
        error: function() { console.log('Uh Oh!'); },      
        }); 

如果您需要有关我正在尝试做的事情的更多信息,请告诉我。提前致谢。

【问题讨论】:

  • 似乎不起作用非常广泛。你能更注重细节吗?
  • 我基本上是在尝试从 json 中获取 ID,然后像 ytplayer_playlist.push( 'SwigFQCnZQI' ); 那样将它们推送到播放列表,而是从 ajax 函数中添加 ID。我相信该功能有效,但视频未推送到列表中。
  • 对,console.log(data) 输出什么?
  • 它输出2,正确,数据库中ID的数量
  • 所以,http://dj.aotikbot.tv/songlist.php 是一个 JSON 字符串。因此,请尝试$.parseJSON(data).songs[x].link

标签: javascript php jquery ajax youtube


【解决方案1】:

因此,根据我们的聊天记录,JSONP 就是您所追求的。下面的代码应该可以工作。看看吧。

var playlist = [];
$.ajax({
    url: 'http://dj.aotikbot.tv/songlist.php?callback=?',
    type: 'GET',
    async: false, //evil, but you needed this!
    dataType: 'json',                                                                                                                                                                                                
    success: function(data) { 

        if (data.songs.length > 0) {
            $.each(data.songs, function() {
               playlist.push(this.link);
            });
        }
        console.log("Here is your playlist");
        console.log(playlist);
    },                                                                                                                     
    error: function() { console.log('Uh Oh!'); }
});

【讨论】:

  • 没问题!很高兴我能帮上忙。
猜你喜欢
  • 2013-02-08
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 2013-02-16
  • 2021-12-21
  • 2018-07-03
  • 2012-06-03
  • 2014-03-21
相关资源
最近更新 更多