Javascript Jplayer-从Mysql结果创建动态播放列表
我有一个由mysql搜索生成的歌曲列表,我可以在点击播放图像(play_overlay.png)时播放歌曲。当歌曲播放完毕后,我希望Jplayer在mysql结果数组中播放下一首歌曲。我不能让它工作 谢谢你的帮助 下面是mysql和html代码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
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"
});
}