我在php中有一段非常丑陋的代码,可以这样做:
for ($i = 0; $i <= ($fi_int-1); $i++) {
$song_uri = urlencode($songs[$i]);
echo "URI: " . $song_uri . "<br>";
echo "<li><a href='#' onclick='PlaySong(".$song_uri.")'>" . $songs[$i] . "</li><br>";
}
现在,当调用PlaySong()时,会发生这种情况:
<script>
function PlaySong(title) {
title = decodeURIcomponent(title));
document.getElementById("player").src = "./mp3/" + title;
}
</script>
目前的问题是当$ song [$ i]传递给PlaySong()时,它看起来就像是:
PlaySong(Name+Of+The+Song+-+Artist+LastName+blah) {
...
}
所以JS显然有问题。它试图添加东西,因为有优点......现在,当它进来时,我怎么能将那个混乱转换成字符串呢?或者有更好的方法吗?我确信有,但这种丑陋对我来说非常严重,所以我对快速表现并不太在意:)。
答案 0 :(得分:1)
你需要在song_uri字符串周围加一些引号。我不能在移动设备上粘贴代码...但是php应该像这样输出
Onclick =“PlaySong('this + song')”
目前你已经做到了
Onclick =“PlaySong(this + song)”并且参数不被视为字符串