将变量值发送到onclick函数

时间:2014-12-24 18:53:20

标签: javascript html

我有一个表,并且在每个单元格中都有一个编辑图像,因此当用户点击它时,他们将在单元格中看到一个输入框。 (以下是其中一个单元格的示例)

  <td>
      echo  
           "<p id=$idl>" . $var  .   "</p>" . "<img style ='cursor:pointer; ' class='onInput' src='http://nimbuzz007.hexat.com/icon4/icon%2015.png' id='input_img' onclick='legacyFunction($idl,$var)'>";

   </td>

这是&#39; legacyFunction&#39;:

 function legacyFunction($idl,$var) {

    document.getElementById($idl).innerHTML =
    "<input  value=$var></input>";

};

所以我想将单元格的当前数据发送到函数,以在输入框中显示但它不起作用。我的错是什么?有可能这样做吗?

2 个答案:

答案 0 :(得分:0)

你需要围绕参数引用,因为它们是字符串。

onclick='legacyFunction(\"$idl\",\"$var\")'

答案 1 :(得分:0)

正如其他人所说的混合html,js和php一样糟糕。我总是倾向于在可能的情况下分开代码。

示例:

<td>
    <p id="<?php echo $idl; ?>"><?php echo $var; ?></p>
    <img style="cursor: pointer;" class="onInput" src="http://nimbuzz007.hexat.com/icon4/icon%2015.png" onclick="legacyFunction(<?php echo "$idl, $var"; ?>);">
</td>
<script>
    function legacyFunction($idl, $var) {
        // Inputs are void elements and as such they do not need closing tags - </input>
        document.getElementById($idl).innerHTML =  '<input value="'+ $var + '">';
    };
</script>