我在所有工具提示中都获得了相同的文字,即使它不属于该

时间:2015-05-12 20:28:00

标签: javascript php html

我正在尝试学习一些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。

如果这令人困惑,我很抱歉,如果你愿意,我可以详细说明。

1 个答案:

答案 0 :(得分:0)

您的所有元素都具有相同的ID。所以document.GetElementById("popup");每次都获得第一个元素。 Ids应该是独一无二的。我使用posts将每个帖子的ID传回来,然后将其放入ID中,以便正确识别每个div。

<div id="popup" 

为:

<div id="popup' . $id . '"