2012-09-12 198 views
0

我的问题是我有一个php变量$ ba,从数据库中检索到147的值,我的代码的下面snipets不起作用,没有显示图像。如果我加$ ba = 147;在fill_div调用之前它完美地工作。我被困在为什么当数据库从数据库填充$ ba时,它的工作原理。 在这两种情况下,检查页面的源代码都会显示正在填充的呼叫fill_div(“147”);在javascript函数中使用php变量

<script type='text/javascript'> 
    function fill_div(ba) 
    { 
     document.getElementById("ba").innerHTML="<img src='admin/images/image.gif'/>"; 
    } 
</script> 

<script> 
    fill_div("<? echo stripslashes($ba); ?>"); 
</script 

<div id="<? echo $ba ?>" style="border:1px solid; width:120px; height:40px"></div> 
+0

如果它没有从数据库填充 - 这个问题如何与HTML和JavaScript相关? – zerkms

+1

请显示代码中声明'$ ba'的地方。它是在一个函数内吗?另外,你的javascript应该是'document.getElementById(ba);' – cegfault

+0

从getElementById(ba)删除了引号没有做任何不同 – user1664457

回答

4

你传递字符串文字"ba"getElementById当你需要传递变量ba

document.getElementById(ba).innerHTML="<img src='admin/images/image.gif'/>"; 

而且该的stripslashes可能不是一个好主意,如果$ba有报价在里面,如果$ba有一个"它会导致你的JavaScript错误,如果它不逃脱。

+0

我添加了stripslashes的机会可能会有所不同,“现在已被删除,结果相同 – user1664457

1
document.getElementById("ba") 

应该

document.getElementById(ba) 
3

尝试..

document.getElementById(ba).innerHTML 
0

试着改变你的document.getElementById到:

的document.getElementById(BA)

如果已经引用(如在你的e xample代码)“ba”被视为一个字符串,而不是一个变量。

+0

感谢您的答案,但即使没有”仍然不工作 – user1664457