将PHP变量传递给JavaScript函数

将PHP变量传递给JavaScript函数,javascript,php,jquery,Javascript,Php,Jquery,我想将PHP变量传递给JS函数,如中所示: onclick='handleClick($phpVar);' 但不幸的是,即使在将php变量转换为字符串之后,函数也不接受该值 这两个代码块如下所示: PHP: while($stmt->fetch()) { echo "<tr><td>" . htmlspecialchars($company) . "</td><td id='$price'>" . htmlspeci

我想将PHP变量传递给JS函数,如中所示:

onclick='handleClick($phpVar);'
但不幸的是,即使在将php变量转换为字符串之后,函数也不接受该值

这两个代码块如下所示:

PHP:

while($stmt->fetch()) { 
  echo "<tr><td>" 
  . htmlspecialchars($company) 
  . "</td><td id='$price'>" 
  . htmlspecialchars($volume)
  . "</td><td id='$price'>" 
  . htmlspecialchars($price)
  . "</td><td>" 
  <button type='submit' class='submit-btn'>Submit</button>
  </td><td>
     <label tabindex='0' class='checkbox'>
     <input type='checkbox' style='opacity:0' checked='checked' onclick='handleClick($price);'/>
     <i class='close-btn fa fa-edit'></i>
     </label>
  </td></tr>";
} 
function handleClick(id) {
   document.getElementById(id).style.fontSize=="150%");
}

您应该能够向该函数添加一个PHP值。我试着把它弄得乱七八糟。我删除了最后一个表条目后的一个引号,并对javascript中的函数调用进行了一些更改

while($stmt->fetch()) { 
  echo "<tr><td>" 
  . htmlspecialchars($company) 
  . "</td><td id='$price'>" 
  . htmlspecialchars($volume)
  . "</td><td id='$price'>" 
  . htmlspecialchars($price)
  . "</td><td> 
  <button type='submit' class='submit-btn'>Submit</button>
  </td><td>
     <label tabindex='0' class='checkbox'>
     <input type='checkbox' style='opacity:0' checked='checked' onclick='handleClick(".$price.");'/>
     <i class='close-btn fa fa-edit'></i>
     </label>
  </td></tr>";
} 
while($stmt->fetch()){
回声“”
.htmlspecialchars($company)
. "" 
.htmlspecialchars($volume)
. "" 
.htmlspecialchars($price)
. " 
提交
";
} 
我希望这有帮助


利亚姆

由于您已经在$price变量上使用htmlspecialchars来显示它,因此我只能假设您不信任此变量的内容。出于安全原因,您还应该对价格进行json_编码,然后在将javascript放入onclick属性时转义整个属性。依照


提交

你试过这个吗:
onclick='handleClick(“”)
因为它是一个字符串,所以在将其发送到javascript函数之前需要引用该值,就像上面absfrm建议的那样。您的PHP似乎无法编译。您似乎没有为正在使用的变量指定值。您看起来并不是为了了解JavaScript的实际外观而查看正在调试的JavaScript。您似乎没有查看浏览器的JavaScript控制台以查看是否存在任何错误消息。“不接受值”到底是什么意思?@absfrm您不使用
@Barmar是的,我的意思是他应该正确使用变量。如果字符串应该传递到JS handleClick()函数中,它应该用单引号或双引号括起来。由于双引号用于打印html,而单引号用于属性值,因此您可能必须在$price变量周围使用转义双引号:
echo”“
<?php
while($stmt->fetch()) { 
  ?>  
  <tr>
    <td><?php echo htmlspecialchars($company); ?></td>
    <td id='<?php echo htmlspecialchars($price); ?>'><?php echo htmlspecialchars($volume); ?></td>
    <td id='<?php echo htmlspecialchars($price); ?>'><?php echo htmlspecialchars($price); ?></td>
    <td>
      <button type='submit' class='submit-btn'>Submit</button>
    </td>
    <td>
      <label tabindex='0' class='checkbox'>
        <input type='checkbox' style='opacity:0' checked='checked' onclick='<?php echo htmlspecialchars('handleClick(' . json_encode($price) . ');') ?>'/>
        <i class='close-btn fa fa-edit'></i>
      </label>
    </td>
  </tr><?php
}