在javascript函数中传递php变量

时间:2016-03-02 15:48:49

标签: php parameter-passing

我是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>

我的代码不起作用..请帮助我...

2 个答案:

答案 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;">';