繁体   English   中英

PHP - 回显 JavaScript 不起作用

[英]PHP - echo JavaScript is not working

大家好! 我正在基于引导程序的板上工作,我有一个充满声音信息的数据库(名称/流派/链接 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>

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

希望可以有人帮帮我 ! 谢谢你们

你引用不当

尝试这个

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

https://eval.in/139055

尝试作为

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

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

尝试这个

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

例子

用这个:

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

如果我像这样隔离代码:

<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='' 部分中的某些内容是一个变量,因为它使您更容易阅读,因为您不会迷失在嵌套的单引号和双引号中。

例如:

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

其他几个答案建议将引号转义(使用 \\"),这很好,但最好不要在 echo 语句中内嵌它,除非您真的确定了解您要尝试的内容做!

编辑:另见: https : //eval.in/139090

例如

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM