Javascript 使用HTML onClick将PHP变量作为参数传递
我看了很多类似的例子,但我无法做到这一点 所以,我有这个:Javascript 使用HTML onClick将PHP变量作为参数传递,javascript,php,html,onclick,Javascript,Php,Html,Onclick,我看了很多类似的例子,但我无法做到这一点 所以,我有这个: echo('<td colspan="3" style="background-color:#005673; text-align:right; padding: 4px 0px;"> <button class="btnTrack" onClick="trackIt(' . $name . ')" >Track It!</button></td>'); echo(' 跟踪它
echo('<td colspan="3" style="background-color:#005673; text-align:right; padding: 4px 0px;">
<button class="btnTrack" onClick="trackIt(' . $name . ')" >Track It!</button></td>');
echo('
跟踪它!);
该代码位于for中,因此变量$name将根据我所在的位置而有所不同
我不想让事情复杂化,所以首先,我只是想把这个参数传递给函数trackIt(实际上我需要传递其中的两个)
然后,我有一个简单的脚本(只是想看看它是否能工作):
//在你点击跟踪它之后
函数trackIt(参数)
{
警惕(“嗨!”);
警报(参数);
}
但是,它不起作用
如果我的onClick
函数只是onClick=“trackIt()”
,那么它工作正常,我可以通过删除参数来警告“Hi!”
谢谢你的帮助!=] 试试这个
echo('<td colspan="3" style="background-color:#005673; text-align:right; padding: 4px 0px;">
<button class="btnTrack" onclick="trackIt(\'' . $name . '\')" >Track It!</button></td>');
echo('
跟踪它!);
注意:如果输入参数是数值,则必须使用自己的方式
您正在将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中定义字符串的边界时,您必须使用\'
对其进行转义,以使'
字符成为字符串的一部分。试试这个
echo('<td colspan="3" style="background-color:#005673; text-align:right; padding: 4px 0px;">
<button class="btnTrack" onclick="trackIt(\'' . $name . '\')" >Track It!</button></td>');
echo('
跟踪它!);
注意:如果输入参数是数值,则必须使用自己的方式
您正在将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中定义字符串的边界时,您必须使用\'
对其进行转义,以使'
字符成为字符串的一部分。这不起作用的原因是,您在HTML中将未封装的字符串作为参数传递,它被解释为一个javascript变量,例如:
Uncaught ReferenceError: ValueOf$name is not defined
"
或者,如果变量包含空格或特殊字符:
Uncaught SyntaxError: Unexpected identifier
要解决这个问题,您应该用引号封装字符串
"trackIt(\'' . $name . '\')"
如果您使用的是整数,则不需要字符串封装
这不起作用的原因是,您在HTML中将未封装的字符串作为参数传递,但它被解释为javascript变量,例如:
Uncaught ReferenceError: ValueOf$name is not defined
"
或者,如果变量包含空格或特殊字符:
Uncaught SyntaxError: Unexpected identifier
要解决这个问题,您应该用引号封装字符串
"trackIt(\'' . $name . '\')"
如果您使用的是整数,则不需要字符串封装
即使其他答案是正确的。。。如果您不需要真正打印所有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>');
echo('
跟踪它!);
它可以成为:
<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>
即使其他答案是正确的。。。如果您不需要真正打印所有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>');
echo('
跟踪它!);
它可以成为:
<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>
对于传递多个参数,您可以通过将字符串与ASCII值串联来强制转换字符串,例如,对于单引号,我们可以使用'
这对我很有用。对于传递多个参数,您可以通过将字符串与ASCII值串联来强制转换字符串,例如,对于单引号,我们可以使用'
这对我很有用。查看生成的html以了解更多的clues您忘记在插入的变量周围加引号了。e、 g.您正在执行foo(bar)
,将bar设置为未定义的变量,而不是foo('bar')
,将bar设置为字符串。查看生成的html以了解更多提示您忘记在插入的变量周围加引号。e、 g.您正在执行foo(bar)
,将bar设置为未定义变量,而不是foo('bar')
,将bar设置为字符串。不过,感谢您的解释,“trackIt(\”.$name.\”)
不起作用<代码>“trackIt(\”.$name.“\””
不起作用,因为无法在用双引号封装的属性中转义双引号。不过,感谢您的解释,“trackIt(\”.$name.“\”)”
不起作用<代码>“trackIt(\”.$name.\”)“
不起作用,因为无法在用双引号封装的属性中转义双引号。这并不能解决问题-生成的HTML仍将被破坏。这不能解决问题-生成的HTML仍将被破坏。现在,我需要使用onclick=“trackIt(\'.$name.'\')”
传递第二个参数,我应该为这个问题创建一个不同的帖子吗?@Felipe,看看你是否可以先找出如何传递另一个参数。我尝试了一些不同的方法,但没有成功。然后,我再次阅读了所有的评论,以更好地理解它是如何工作的,多亏@plbsam的新解释,我才得以实现。谢谢大家!=]伟大的你最好不要不假思索地问问题。。否则,当stackoverflow死亡时,您将无法生存:)现在,我需要使用onclick=“trackIt(\'.$name.'\')”
传递第二个参数,我应该为这个问题创建一个不同的帖子吗?@Felipe,看看你是否可以先找到如何传递另一个参数的方法。我尝试了一些不同的方法,但没有成功。然后,我再次阅读了所有的评论,以更好地理解它是如何工作的,多亏@plbsam的新解释,我才得以实现。谢谢大家!=]伟大的你最好不要不假思索地问问题。。否则,当stackoverflow死亡时,您将无法生存:)