我查看了许多类似的例子,但我无法做到这一点。
所以,我有这个:
echo('<td colspan="3" style="background-color:#005673; text-align:right; padding: 4px 0px;">
<button class="btnTrack" onClick="trackIt(' . $name . ')" >Track It!</button></td>');
该代码位于for中,因此变量$ name将根据我的位置而有所不同。
我并不是想让事情变得复杂,所以首先,我只是试图将该参数传递给函数trackIt(我实际上需要传递其中的2个。)
然后,我有一个简单的脚本(只是为了查看它是否可行):
<script>
//After you click on Track It
function trackIt(param)
{
alert("Hi!");
alert(param);
}
</script>
然而,它不起作用。
如果我的onClick
功能只是onClick="trackIt()"
,那么它可以正常工作,我可以发出警报&#34;嗨!&#34;删除参数。
感谢您的帮助! =]
答案 0 :(得分:8)
试试这个..
echo('<td colspan="3" style="background-color:#005673; text-align:right; padding: 4px 0px;">
<button class="btnTrack" onclick="trackIt(\'' . $name . '\')" >Track It!</button></td>');
注意:如果输入参数是数值,则必须按照自己的方式使用..
您正在打印HTML,
<td colspan="3" style="background-color:#005673; text-align:right; padding: 4px 0px;">
<button class="btnTrack" onclick="trackIt(test)" >Track It!</button></td>
但是因为函数trackIt需要一个字符串作为输入参数,你必须打印这个..
<td colspan="3" style="background-color:#005673; text-align:right; padding: 4px 0px;">
<button class="btnTrack" onclick="trackIt('test')" >Track It!</button></td>
当您使用'
作为边界来定义PHP中的字符串时,您必须使用\'
对其进行转义,以使'
字符成为字符串的一部分。
答案 1 :(得分:1)
这不起作用的原因是由于您在HTML中将未封装的字符串作为参数传递,但是,它被解释为javascript变量,例如:
Uncaught ReferenceError: ValueOf$name is not defined
&#39; 或者,如果变量包含空格或特殊字符:
Uncaught SyntaxError: Unexpected identifier
要解决此问题,您应该使用引号封装字符串。
"trackIt(\'' . $name . '\')"
如果您使用整数,则不需要字符串封装。
答案 2 :(得分:0)
对于传递多个参数,您可以通过将其与ASCII值连接来强制转换字符串,对于单引号,我们可以使用'
var str= "'"+ str+ "'";
这适合我。
答案 3 :(得分:-3)
即使其他答案都是真的......如果你不需要真正打印所有html使用php不同
echo('<td colspan="3" style="background-color:#005673; text-align:right; padding: 4px 0px;">
<button class="btnTrack" onClick="trackIt(' . $name . ')" >Track It!</button></td>');
它可以成为:
<td colspan="3" style="background-color:#005673; text-align:right; padding: 4px 0px;">
<button class="btnTrack" onClick="trackIt(<?php print $name;?>)" >Track It!</button></td>
仅在需要时使用php:)