将PHP变量传递给JavaScript函数
我想将PHP变量传递给JS函数,如中所示:将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
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
}