我正在尝试学习一些Javascript,并将其与PHP和HTML结合使用。目前,我遇到的问题是,当我将鼠标移到第二个或第三个div时,它会写出我在第一个div中所拥有的一切。
$posts = get_posts(((isset($_GET['id'])) ? $_GET['id'] : null));
foreach($posts as $post){
?>
<div onmouseover="fixad()" onmouseout="tabort()" style="background-color:red; width:100px;"><?php echo $post['user'] . " " . $post['contents'] . "<br>";?></div><br>
<div id="popup" style="display:block; background-color:black; width:100px; height:100px; color:white; float:right;"><?php echo $post['date_posted'] . " " . $post['user']; ?></div>
<?php
} ?>
我的get_posts函数如下所示:
function get_posts($id = null) {
$posts = array();
$query = "select contents, user, date_posted FROM database where id=$'id'";
$query = mysql_query($query);
while($row = mysql_fetch_assoc($query)){
$posts[] = $row;
}
return $posts;
}
我的Javascript很简单,看起来像这样:
function fixad() {
var r = document.GetElementById("popup");
r.style.display = "block";
}
function tabort(){
var r = document.GetElementById("popup");
r.style.display = "none";
}
总结一下:我想写出1 div中id = 5的文本。但是,当它应该来自另一个id时,我从id = 5获得文本。
所以我的
<div id="popup"<?php echo $post['id'];?></div>
将在每个弹出窗口中打印出相同的ID。
如果这令人困惑,我很抱歉,如果你愿意,我可以详细说明。
答案 0 :(得分:0)
您的所有元素都具有相同的ID。所以document.GetElementById("popup");
每次都获得第一个元素。 Ids应该是独一无二的。我使用posts
将每个帖子的ID传回来,然后将其放入ID中,以便正确识别每个div。
<div id="popup"
为:
<div id="popup' . $id . '"