我想将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>";
}
JavaScript的:
function handleClick(id) {
document.getElementById(id).style.fontSize=="150%");
}
答案 0 :(得分:1)
您应该能够为该函数添加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>";
}
我希望这有帮助!
利安
答案 1 :(得分:1)
由于您已经在$ price变量上使用htmlspecialchars来显示它,我只能假设您不信任此变量的内容。出于安全原因,您还应该对价格进行json_encode,然后在将javascript放入onclick属性时转义整个属性。根据{{3}}
<?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
}