Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jplayer-从Mysql结果创建动态播放列表_Javascript_Php_Mysql_Jplayer - Fatal编程技术网

Javascript Jplayer-从Mysql结果创建动态播放列表

Javascript Jplayer-从Mysql结果创建动态播放列表,javascript,php,mysql,jplayer,Javascript,Php,Mysql,Jplayer,我有一个由mysql搜索生成的歌曲列表,我可以在点击播放图像(play_overlay.png)时播放歌曲。当歌曲播放完毕后,我希望Jplayer在mysql结果数组中播放下一首歌曲。我不能让它工作 谢谢你的帮助 下面是mysql和html代码 while($results = mysql_fetch_array($raw_results)){ // $results = mysql_fetch_array($raw_results) puts data from

我有一个由mysql搜索生成的歌曲列表,我可以在点击播放图像(play_overlay.png)时播放歌曲。当歌曲播放完毕后,我希望Jplayer在mysql结果数组中播放下一首歌曲。我不能让它工作

谢谢你的帮助

下面是mysql和html代码

        while($results = mysql_fetch_array($raw_results)){
        // $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the loop

        echo '<tr>';
        echo'<td>'. ucfirst($results['song_name']).'</td>';
        echo'<td>'. ucfirst($results['song_artist']).'</td>';
        //echo'<td>'. ucfirst($results['song_album']).'</td>';

            echo '<td>';
            echo '<a href="'.ucfirst($results['song_url']).'" class="jp-play1"> <img src="images/play_overlay.png"></a>';
            echo '</td>'; 
            echo '</tr>';
下面是getsong.php,它获取歌曲的名称、艺术家和url

<?php

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){ 

 mysql_connect("", "", "") or die("Error connecting to database: ".mysql_error());
 mysql_select_db("") or die(mysql_error());
    /* tutorial_search is the name of database we've created */ 

    $myval = $_POST['myval'];
    $myval1 = htmlspecialchars($myval);

     $raw_results = mysql_query("SELECT * FROM song_main
            WHERE (`song_url` LIKE '%".$myval1."%') " ) or die(mysql_error());



              while($results = mysql_fetch_array($raw_results)){
            // $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the loop

    $artist = $results['song_artist'];
    $songname = $results['song_name'];
    $url = $myval;
    $separator = '|';
    echo $url.$separator.$artist.$separator.$songname;

     }

}

?>

我建议测试这段代码。当前\u单击的\u项目第一个库存 加载DOM时的.jp-play1元素。当用户单击 链接时,我们将通过当前单击的元素覆盖此值。当 歌曲即将结束,我们跳到下一个/第一个元素

var current\u clicked\u item=$(“.jp-play1”).eq(0);
readMP3(“test_1.mp3”);//如果加载了文档,则播放一个mp3
$(“.jp-play1”)。单击(函数(事件){
当前点击的项目=$(此项);
event.preventDefault();
readMP3($(this.attr(“href”));
})
函数readMP3(_src){
$(“#jquery_jplayer_1”).jplayer(“销毁”);
$(“#jquery_jplayer_1”).jplayer({
就绪:函数(){
var data=$.ajax({
类型:'POST',
url:“getsong.php”,
数据:{'myval':_src},
异步:false
}).responseText;
var string=data.split(“|”);
$(this).jPlayer(“setMedia”{
mp3:字符串[0]
}).jPlayer(“播放”);
$('#artist').html(字符串[1]);
$('#songname').html(字符串[2]);
},
结束:功能(事件){
如果(当前单击的项目.index()<$(“.jp-play1”).length-1)
{
$(“.jp-play1”).eq(当前单击的项目.index()+1)。触发器('click');//播放下一首歌
}
其他的
{
$(“.jp-play1”).eq(0).trigger('click');//播放第一首歌
}
},
swfPath:“js”,
提供:“mp3”
}); 
}

我们可以知道您的脚本的地址吗?我看不出有什么问题。嗨,问题是jplayer不会自动切换到数组中的下一首歌曲,getsong.php中可能有一些内容需要更改,但我看不出有什么…谢谢你的回答,但它不起作用。。。Jplayer不会转到下一首歌。“current\u clicked\u item.index()”是mysql阵列中当前播放的歌曲的位置吗?请给我您项目的链接好吗?
<?php

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){ 

 mysql_connect("", "", "") or die("Error connecting to database: ".mysql_error());
 mysql_select_db("") or die(mysql_error());
    /* tutorial_search is the name of database we've created */ 

    $myval = $_POST['myval'];
    $myval1 = htmlspecialchars($myval);

     $raw_results = mysql_query("SELECT * FROM song_main
            WHERE (`song_url` LIKE '%".$myval1."%') " ) or die(mysql_error());



              while($results = mysql_fetch_array($raw_results)){
            // $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the loop

    $artist = $results['song_artist'];
    $songname = $results['song_name'];
    $url = $myval;
    $separator = '|';
    echo $url.$separator.$artist.$separator.$songname;

     }

}

?>
    var current_clicked_item = $(".jp-play1").eq(0);

    readMP3("test_1.mp3");// play one mp3 if document is loaded

    $(".jp-play1").click(function(event){
        current_clicked_item = $(this);
        event.preventDefault();
        readMP3($(this).attr("href"));
    })



function readMP3(_src){

    $("#jquery_jplayer_1").jPlayer("destroy");

    $("#jquery_jplayer_1").jPlayer({
      ready: function () {
          var data = $.ajax({
              type:'POST',
            url: "getsong.php",
            data: {'myval': _src },
            async: false
           }).responseText;

          var string = data.split('|');
          $(this).jPlayer("setMedia", {
              mp3: string[0]
          }).jPlayer("play");

          $('#artist').html(string[1]);
          $('#songname').html(string[2]);
      },
      ended: function (event) {
          if (current_clicked_item.index() < $(".jp-play1").length - 1)
          {
              $(".jp-play1").eq(current_clicked_item.index() + 1).trigger('click'); // play next song
          }
          else
          {
              $(".jp-play1").eq(0).trigger('click'); // play first song
          }
      },
      swfPath: "js",
      supplied: "mp3"
    }); 

}