我正在尝试在php echo语句中使用javascript函数。正在使用showme和onclick函数,并且必须在showme函数中传递值。
以下代码无效。
echo"
<ul>
<li><a href='javascript:void(0);' onclick='showme('Test','','10.70725','-61.55391','','Tester');' >$id</a></li>
</ul>
";
我该如何解决这个问题?
答案 0 :(得分:7)
echo"
<ul>
<li><a href='javascript:void(0);' onclick=\"showme('Test','','10.70725','-61.55391','','Tester');\" >$id</a></li>
</ul>
";
答案 1 :(得分:5)
所以不要回复这么多使用PHP只是这样做,并在"
showme()
引号
<ul>
<li>
<a href="javascript:void(0);" onclick="showme('Test','','10.70725','-61.55391','','Tester');"><?php echo $id; ?></a>
</li>
</ul>
编辑:正如你所说,你在一个while循环中运行它,你可以这样做
我假设你要从数据库中提取数据
<?php
while($blah = mysqli_fetch_array($fetch_blah)) {
?>
<!--HTML Part Goes Here-->
<ul>
<li>
<a href="javascript:void(0);" onclick="showme('Test','','10.70725','-61.55391','','Tester');"><?php echo $blah['id']; ?></a>
</li>
</ul>
<?php
}
?>
答案 2 :(得分:2)
这样做,在你的回音中添加\" \"
:
echo"
<ul>
<li><a href='javascript:void(0);' onclick=\"showme('Test','','10.70725','-61.55391','','Tester');\" >$id</a> </li>
</ul>
";
答案 3 :(得分:1)
请避开双重报价。
echo "
<ul>
<li><a href=\"javascript:void(0);\" onclick=\"showme('Test','','10.70725','-61.55391','','Tester');\" >$id</a></li>
</ul>
";
答案 4 :(得分:0)
为了简化阅读,请尝试退出PHP以显示HTML(而不是使用echo
来显示它):
?>
<ul>
<li>
<a href="javascript:void(0);" onclick="showme('Test','','10.70725','-61.55391','','Tester');" ><?=$id;?></a>
</li>
</ul>
<?php
这将修复原始代码中的引用转义问题,并使其更易于阅读。
答案 5 :(得分:0)
检查转义字符/转义序列 [参考:http://php.net/manual/en/regexp.reference.escape.php]
<li><a href='javascript:void(0);' onclick=\"showme('Test','','10.70725','-61.55391','','Tester');\">$id</a></li>
要使用双引号,请使用转义字符\“,这会产生 - &gt;”
正如其他答案中所建议的,简单地回显$ id而不是整个html片段
答案 6 :(得分:0)
echo " ...
onclick="showme('Test','','10.70725','-61.55391','','Tester');"><?php echo $id; ?></a>
...";
答案 7 :(得分:0)
尝试在html中使用引号而不是撇号:
$result =<<<TSTSTR
<ul>
<li>
<a href="javascript:void(0);' onclick='showme('Test','','10.70725','-61.55391','','Tester');'">$id</a>
</li>
</ul>
TSTSTR;
echo $result;