【问题标题】:passing php variable in javascript function在javascript函数中传递php变量
【发布时间】:2016-03-02 15:48:48
【问题描述】:

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

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

【问题讨论】:

  • 不工作怎么办?你有任何错误吗?检查 div 的代码会告诉你什么?
  • 我的 javascript 函数没有从 php 代码中获取价值。请注意

标签: php parameter-passing


【解决方案1】:

你的问题是:

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 是字符串,则需要引号。并且引号内的引号需要转义

【讨论】:

  • 我的 javascript 函数没有从 php 代码中获取价值。请注意
  • 试试myOverFunction(\''. $p .'\')。如果$p 是一个字符串,它需要引号。引号内的引号需要转义
  • 仍然 myOverFunction(\''.$p .'\') 没有改变“demo”的innerHTML
  • 你能发一个&lt;div onclick="myOver...的view-source行吗?
  • echo '

    '.$p.'

    '; ******* javascrpit 函数 **** 函数 myOverFunction(\''.$p .'\') { document.getElementById("demo").innerHTML = "$p"; }
【解决方案2】:

您试图在 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;">';

【讨论】:

  • 我的 javascript 函数没有从 php 代码中获取价值。请注意
  • 点击它没有任何改变
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-16
  • 2013-01-30
  • 2011-08-17
  • 1970-01-01
  • 2015-06-08
  • 2015-07-10
相关资源
最近更新 更多