PHP - 回显HTML的多个嵌套引号

时间:2017-07-06 13:03:32

标签: javascript php html quotes

我试图通过PHP回复以下HTML行

echo "<a class='fa fa-ban fa-2x cancelClass' onClick='cancelClass('$id', '$formattedDate', '$time')'></a><p class='text-center'>".$formattedDate." @ $time</p>";

我没有收到错误。但是onClick =&#39; cancelClass的引号...没有被正确解析,这导致javascript函数没有执行。

如何在Google Chrome Source View中对其进行颜色编码

如何进行颜色编码(另一个函数示例) enter image description here

4 个答案:

答案 0 :(得分:2)

将其更改为以下

PrintService _service = PrintServiceLookup.lookupDefaultPrintService(); 
if (service != null) 
{ 
    String printServiceName = _service.getName(); 
    System.out.println("Printer Service Name is " + printServiceName); 
} 
else 
{ 
    System.out.println("No printer service found"); 
}

转义属性双引号你可以有一个规范化的html

答案 1 :(得分:1)

您需要执行以下操作:

echo "<a class='fa fa-ban fa-2x cancelClass' onClick=\"cancelClass('".$id."', '".$formattedDate."', '".$time."')\"></a><p class='text-center'>".$formattedDate." @ $time</p>";

答案 2 :(得分:1)

他们正确解析,但是你指定了错误的用法。 Javascript无法区分引号以包装您的字符串变量和引号以包装&#34; onclick&#34;价值,它认为onclick过早结束。

为了区分它们,你必须逃避它们。使用\"表示括号内的内容。

echo "<a class='fa fa-ban fa-2x cancelClass' onClick='cancelClass(\"$id\", \"$formattedDate\", \"$time\")'></a><p class='text-center'>".$formattedDate." @ $time</p>";

应该这样做。

或者,不要对整个字符串使用echo,只需直接输出大部分字符串:

?> //temporarily stop interpreting the file as PHP, so the next bit will be output directly as raw HTML
<a class='fa fa-ban fa-2x cancelClass' onClick='cancelClass("<?php echo $id;?>", "<?php echo $formattedDate; ?>", "<?php echo $time;?>")'></a><p class='text-center'>".$formattedDate." @ $time</p>
<?php //continue with PHP

答案 3 :(得分:0)

在HTML中使用双引号。 使用带有ENT_QUOTES的htmlspecialchars来转义具有双引号的值。

echo '<a class="fa fa-ban fa-2x cancelClass" onClick="'.htmlspecialchars("cancelClass('$id', '$formattedDate', '$time')", ENT_QUOTES).
 '"></a><p class="text-center">'.$formattedDate." @ $time</p>";