我需要在PHP中对引号进行三重嵌入才能正确执行javascript命令,我想知道是否有任何方法可以执行此操作。 例如,我试图三重嵌入的是
echo ("<tr id='regular' onMouseOver='highlight($emp,$job,$cust,$lat,$lng)' onMouseOut='unhighlight()'>
<td>$emp</td>
<td>$job</td>
<td>$cust</td>
<td>$lat</td>
<td>$lng</td>
</tr>\n");
问题是我需要输入'$ emp','$ job'和'$ cust',但每当我把它们放在第一个<td>
之后就会结束onMouseOver。
答案 0 :(得分:3)
您需要使用反斜杠\
字符来转义引号。
这是一个例子
echo "\"Daniel\"";
将"Daniel"
打印带引号
有关详细信息,请参阅:http://us2.php.net/manual/en/language.types.string.php
答案 1 :(得分:2)
echo <<<HTML
<tr id="regular" onMouseOver="highlight('$emp','$job','$cust','$lat','$lng')" onMouseOut="unhighlight()">
<td>$emp</td>
<td>$job</td>
<td>$cust</td>
<td>$lat</td>
<td>$lng</td>
</tr>
HTML;
答案 2 :(得分:1)
你无法在单引号中嵌套单引号。最简单的解决方案是使用转义双引号。
echo ("<tr id='regular' onMouseOver='highlight(\"$emp\",\"$job\",\"$cust\",\"$lat\",\"$lng\")' onMouseOut='unhighlight()'>
<td>$emp</td>
<td>$job</td>
<td>$cust</td>
<td>$lat</td>
<td>$lng</td>
</tr>\n");
答案 3 :(得分:1)
我不确定我理解你的问题,但我会试一试:
要在字符串中嵌入引号(带引号),您需要转义它们,以便您可以执行以下操作:
$string = "This is a string, and those: \"are quotes\"";
要在没有怪癖的情况下将变量嵌入字符串中,请尝试使用大括号{}
:
$string = "onMouseOver='highlight({$emp},{$job},{$cust},{$lat},{$lng})'";
答案 4 :(得分:1)
尝试这样的事情:
echo ('<tr id="regular" onMouseOver="highlight(\'$emp\', \'$job\', \'$cust\', \'$lat\', \'$lng\');" onMouseOut="unhighlight();">');
echo ("<td>$emp</td>");
echo ("<td>$job</td>");
echo ("<td>$cust</td>");
echo ("<td>$lat</td>");
echo ("<td>$lng</td>");
echo ("</tr>\n");
\
个字符使'
不会影响字符串。
答案 5 :(得分:1)
你需要逃避'角色。
echo ("<tr id='regular' onMouseOver='highlight(\'$emp\',\'$job\',\'$cust\',\'$lat\',\'$lng\')' onMouseOut='unhighlight()'>
<td>$emp</td>
<td>$job</td>
<td>$cust</td>
<td>$lat</td>
<td>$lng</td>
</tr>\n");