PHP - echo JavaScript不起作用

时间:2014-04-21 10:11:12

标签: javascript php html

您好大家好! 我在基于bootstrap的电路板上工作,我有一个充满声音信息的数据库(名称/流派/链接soundcloud ......)

在我的PHP页面中,我回显一个按钮,该按钮调用带有PHP参数的JS函数。

echo "<button onclick='SCM.queue({title:'".$name[$j]."',url:'".$liensc[$j]."'});'>Click me</button>";

我的问题是,当我查看我的页面的源代码时,我应该有类似的东西:

<button onclick="SCM.queue({title:'Marvin Gaye - Sexual Healing (Kygo Remix)',url:'http://soundcloud.com/kygo/marvin-gaye-sexual-healing'});">Click me</button>

但我得到了:

<button onclick="SCM.queue({title:" marvin="" gaye="" -="" sexual="" healing="" (kygo="" remix)',url:'http:="" soundcloud.com="" kygo="" marvin-gaye-sexual-healing'});'="">Click me</button>

所以,我正在寻找合适的合成器:)

希望有人可以帮助我! 谢谢大家

6 个答案:

答案 0 :(得分:1)

你引用不当

试试这个

echo "<button onclick='SCM.queue({title:\"".$name[$j]."\",url:\"".$liensc[$j]."\"});'>Click me</button>";

https://eval.in/139055

答案 1 :(得分:0)

尝试

echo '<button onclick="SCM.queue({title:\''.$name[$j].'\',url:\''.$liensc[$j].'\'});">Click me</button>';

答案 2 :(得分:0)

使用

echo "<button onclick=\"SCM.queue({title:'".$name[$j]."',url:'".$liensc[$j]."'});\">Click me</button>";

答案 3 :(得分:0)

试试这个

echo "<button onclick=\"SCM.queue({title:'".$name[$j]."',url:'".$liensc[$j]."'});\">Click me</button>";

Example

答案 4 :(得分:0)

使用此:

 echo "<button onclick='SCM.queue({title:'{$name[$j]}',url:'{$liensc[$j]}'});'>Click me</button>";

答案 5 :(得分:0)

如果我像这样隔离代码:

<html>
 <body>
  <pre>
  <?php
    $name[1] = 'Marvin Gaye - Sexual Healing (Kygo Remix)';
    $liensc[1] = 'http://soundcloud.com/kygo/marvin-gaye-sexual-healing';
    $j = 1;

    $line = "SCM.queue({title:'".$name[$j]."',url:'".$liensc[$j]."'});";
    echo $line . "\n";

    echo "<button onclick='SCM.queue({title:'".$name[$j]."',url:'".$liensc[$j]."'});'>Click me</button>";

  ?>
  </pre>
 </body>
</html>

$ line,按钮显示为:

SCM.queue({title:'Marvin Gaye - Sexual Healing (Kygo Remix)',url:'http://soundcloud.com/kygo/marvin-gaye-sexual-healing'});

这意味着您的语法正确。

我想知道您是否设法正确地输入了您在此示例中提供的行,但它与您在真实应用中使用的行不同! 还可能值得检查$ name []变量确实传递正常的字符串数据。

通常情况下,我确保onclick =&#39;&#39;&#39;&#39;&#39; part是一个变量,因为它使得阅读更简单,因为你不会在嵌套的单引号和双引号中丢失。

例如:

$onclick = "SCM.queue({title:'" . $name[$j] . "',url:'" . $liensc[$j] . "'});";
echo "<button onclick='$onclick'>Click me</button>";

其他几个答案建议将引号转出(使用\&#34;)这是好的,但是在echo语句中没有内联可能更好,除非你真的确定了解你正在尝试做什么!

编辑: 另请参阅:https://eval.in/139090

为了一个例子