Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有变量的Php echo javascript_Php_Javascript_Echo - Fatal编程技术网

带有变量的Php echo javascript

带有变量的Php echo javascript,php,javascript,echo,Php,Javascript,Echo,有一个关于php回音脚本的问题,该脚本有一个指向带有一些变量的javascript的链接。我需要知道回声的格式,这样它才能正常工作。有人能解释一下吗?我的代码贴在下面 echo "<a href='javascript: toggle('variable1', 'variable2')'><label1 for='nameEditor'>Manage</label1></a>"; echo”“; 现在,当您将鼠标悬停在链接上时,它只显示java

有一个关于php回音脚本的问题,该脚本有一个指向带有一些变量的javascript的链接。我需要知道回声的格式,这样它才能正常工作。有人能解释一下吗?我的代码贴在下面

echo "<a href='javascript: toggle('variable1', 'variable2')'><label1 for='nameEditor'>Manage</label1></a>";
echo”“;
现在,当您将鼠标悬停在链接上时,它只显示javascript:toggle(现在我已经尝试了多种方法,但仍然无法使其正常工作。有人有任何建议吗?

尝试如下:

echo "<a href=\"javascript: toggle('variable1', 'variable2')\"><label1 for='nameEditor'>Manage</label1></a>";
echo”“;

您必须转义\quotes

这是因为浏览器会看到您混合了引号。请执行以下操作:

echo "<a href=\"javascript: toggle('variable1', 'variable2')\"><label1 for='nameEditor'>Manage</label1></a>";
echo”“;

如果您转义双引号(\”),您就没事了。浏览器本身看到的是“”“”(所有单引号),因此您需要在html元素属性中保留““””(双引号、单引号、单引号),与PHP无关(转义除外).

假设
variable1
variable2
是要插入javascript的PHP位,那么

echo "<a href='javascript: toggle('$variable1', '$variable2')'><label1 for='nameEditor'>Manage</label1></a>";
echo”“;
但是,请注意,如果这些变量中的任何一个包含Javascript元字符,例如一个单引号,您将使用语法错误破坏脚本(将其视为与SQL注入相同的情况)

为了确保变量的内容成为合法的Javascript,您需要执行以下操作:

<script type="text/javascript">
    var variable1 = <?php echo json_encode($variable1); ?>;
    var variable2 = <?php echo json_encode($variable2); ?>
</script>

<a href="javascript:toggle(variable1, variable2)...">...</a>

变量1=;
变量2=

javascript:toggle
之后不应该有空格。谢谢你,这正是我想要的。我应该直接问我如何打破引号。非常感谢!