2013-08-20 107 views
-2

我想通过$ post;一个在mysql查询中创建的变量,以javascript函数showDiv。 目前这不工作。动态PHP变量成Javascript函数

$post = $row['id']; 
?> 


<script type="text/javascript"> 
    function showDiv() { 
    var note = "<?php echo $post ?>"; 
    document.getElementById("<?php echo $post; ?>").style.display = "inline";  
    } 
</script> 

<?php 
    $addnote = '<input type="button" value="addnote" onclick="showDiv()"><div id="'.$postid.'" style="display:none;" class="'.$postid.'"> WELCOME</div>'; 

但是,如果我改变$post有一个HTML值e.g

$post = '11'; 

那么这个代码工作。

我是新手在JavaScript所以请温柔, 任何帮助,非常感谢。 谢谢。

+3

当您使用'$ post = $ row ['id'];'?时,$ post等于什么?难道它无法从dB中找到行ID? – Albzi

+3

'var_dump($ row ['id'])'show? –

+1

如果您要输出Javascript,最好的办法是查看脚本打印的实际javascript。 BeatAlex和Mike Brant暗示的是,你的变量要么是空的,要么包含一些“打破”你的javascript字符串的值。 –

回答

-2

检查你的$ row ['id']是否返回了一些东西。

<?php echo $row['id']; ?> 

或查看源代码。 你的代码可能看起来像

<script type="text/javascript"> 
    function showDiv() { 
    var note = ""; 
    document.getElementById("").style.display = "inline"; 
    } 
</script> 
+1

类似的[注释](http://stackoverflow.com/questions/18339478/dynamic-php-variable-into-a-javascript-function#comment26919560_18339478)已经制作完成。 –

0

如果你是在一个循环,我觉得JS不喜欢你重新声明函数“showDiv()”。试试这个:

$post = $row['id']; 
$addnote = '<input type="button" value="addnote" onclick="showDiv('.$post.')"><div id="'.$post.'" style="display:none;" class="'.$post.'"> WELCOME</div>'; 

和JavaScript不是在循环:

<script type="text/javascript"> 
    function showDiv(note) { 
    document.getElementById(note).style.display = "inline";  
    } 
</script> 
-2

假设:$post = $row['id']有一个值。你想var note有一个字符串的值。 JS用单引号或双引号包装字符串。在这样的字符串,所以包裹<?php echo $post ?>

var note = "'"+<?php echo $post ?>"'"; 

这将前置和后置环绕$岗位价值的报价,这样JS可以将其识别为一个字符串。