我是php和javscript的新手。我正在研究问答系统的一些项目。我想将问题id发送到javascript函数。
这是我的PHP代码
<?php
if ($result->num_rows > 0)
{
$i = 1;
while($row = $result->fetch_assoc())
{
$p = $row["description"] ;
echo '<div onclick="myOverFunction(<?= $p ?>)" align="left" class="j" role="group" aria-label="..." > <button id = "btnl<?=$i?>" type="button" class="btn btn-default btn-xs btn-round" style="border-radius:10px;">';
echo $i;
echo '</button>';
echo '<p class="question" style ="display:inline; ">';
echo $p;
echo '</p>';
echo '</div>';
}
}
?>
我的javacript功能是:
<script>
function myOverFunction(x) {
document.getElementById("demo").innerHTML = x;
document.getElementById("btnl"+x).style.backgroundColor = "#d9534f";
}
</script>
我的代码不起作用..请帮助我...
答案 0 :(得分:2)
你的问题是:
echo '<div onclick="myOverFunction(<?= $p ?>)"
将其更改为:
echo '<div onclick="myOverFunction('. $p .')".
其他事件也是如此
您不能echo
echo
您的最终echo
应如下所示:
echo '<div onclick="myOverFunction(\''. $p .'\')" align="left" class="j" role="group" aria-label="..." > <button id = "btnl'.$i.'" type="button" class="btn btn-default btn-xs btn-round" style="border-radius:10px;">';
注意:如果$p
是字符串,则需要引号。引号内的引号需要转义
答案 1 :(得分:1)
你试图在echo中重新打开php标签来打破这一行:
echo '<div onclick="myOverFunction(<?= $p ?>)" align="left" class="j" role="group" aria-label="..." > <button id = "btnl<?=$i?>" type="button" class="btn btn-default btn-xs btn-round" style="border-radius:10px;">';
试试这个:
echo '<div onclick="myOverFunction('.$p.')" align="left" class="j" role="group" aria-label="..." > <button id = "btnl'.$i.'" type="button" class="btn btn-default btn-xs btn-round" style="border-radius:10px;">';