从PHP传递编码变量并在javascript中解码?

时间:2016-06-26 06:00:35

标签: javascript php

我在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显然有问题。它试图添加东西,因为有优点......现在,当它进来时,我怎么能将那个混乱转换成字符串呢?或者有更好的方法吗?我确信有,但这种丑陋对我来说非常严重,所以我对快速表现并不太在意:)。

1 个答案:

答案 0 :(得分:1)

你需要在song_uri字符串周围加一些引号。我不能在移动设备上粘贴代码...但是php应该像这样输出

Onclick =“PlaySong('this + song')”

目前你已经做到了

Onclick =“PlaySong(this + song)”并且参数不被视为字符串