使用HTML onClick将PHP变量作为参数传递

时间:2014-12-02 21:08:34

标签: 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>');

该代码位于for中,因此变量$ name将根据我的位置而有所不同。

我并不是想让事情变得复杂,所以首先,我只是试图将该参数传递给函数trackIt(我实际上需要传递其中的2个。)

然后,我有一个简单的脚本(只是为了查看它是否可行):

<script>
//After you click on Track It

function trackIt(param) 
{
   alert("Hi!");
   alert(param);
}

</script>

然而,它不起作用。

如果我的onClick功能只是onClick="trackIt()",那么它可以正常工作,我可以发出警报&#34;嗨!&#34;删除参数。

感谢您的帮助! =]

4 个答案:

答案 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 . '\')"

如果您使用整数,则不需要字符串封装。

jsFiddle examples

答案 2 :(得分:0)

对于传递多个参数,您可以通过将其与ASCII值连接来强制转换字符串,对于单引号,我们可以使用&#39

var str= "&#39;"+ str+ "&#39;";

这适合我。

答案 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:)