0

我试图以某种方式使用 HTML 和 PHP 在几个段落上弹出一个弹出窗口。该页面使用 while 循环从数据库中加载数据,并且每个段落包含数据库表中的一行。以下是我的代码的相关部分。

在文件的开头,我有一个 php 部分,其中包含以下相关行:

<?php
    $kommun = $_SESSION['kommun'];
    $salary = $_SESSION['loen'];

    $sql2 = "SELECT * FROM sk_municip WHERE id = :id";
    $stmt2 = $dbh->prepare($sql2);
    $stmt2->execute(array(':id' => $kommun));

    $totalSkatt = (($salary * $result2['tax']) / 100);

    $sql3 = "SELECT id, name FROM sk_areas";
    $stmt3 = $dbh->prepare($sql3);
    $stmt3->execute();

    $sql4 = "SELECT area, part, percent, desc FROM sk-mun-".$kommun." WHERE area = :area ORDER BY percent DESC";
    $stmt4_1 = $dbh->prepare($sql4);
    $stmt4_2 = $dbh->prepare($sql4);
?>

在文档的下方,我有使用上面的 php 的 div 和段落:

<?php while ($result3 = $stmt3->fetch()): ?>    

    <?php 
        $stmt4_1->execute(array(':area' => $result3['id']));
        $stmt4_2->execute(array(':area' => $result3['id']));
    ?>

    <?php if ($stmt4_1->fetchColumn() > 0): ?>
        <div class="taxarea">

            <div class="taximg">...</div>

            <div class="taxtext">
                <p class="inhead">...</p>
                <p class="inline">...</p>

                <?php while($result4 = $stmt4_2->fetch()): ?>
                    <?php $partSkatt = round((($totalSkatt * $result4['percent']) / 100)); ?>

                    <p class="tdone">
                        <?php echo $result4['part']; ?>
                    </p>

                    <p class="tdtwo">
                        <?php echo $partSkatt ?> kr
                    </p>

                    <p class="inline">...</p>
                <?php endwhile; ?>
            </div>
        </div>
    <?php endif; ?>
<?php endwhile; ?>

我想要做的是,当有人将鼠标悬停在“tdone”或“tdtwo”类上时,将出现一个弹出窗口,其中包含该行的 desc 列中的信息。如果元组为空或 NULL,则不应出现弹出窗口。

这是一个复杂的问题,我希望我能够以一种好的方式描述它。我知道一些制作弹出窗口的方法,但不像我现在需要的那样动态。对我来说,使用 id javascript、jquery 或 css 无关紧要,我只需要一个好方法来做到这一点。

仅仅添加 title 属性是不够的。我需要能够更改弹出块上的颜色以使其看起来像页面的其余部分。

4

1 回答 1

1

您只能将 CSS 用于鼠标悬停:http: //jsfiddle.net/DbuDL/

.tdone, .tdtwo {
    width: 400px;
    height: 100px;
    overflow: hidden;
    border:1px solid black;
    background-color: white;
}
.tdone:hover, .tdtwo:hover {
    overflow:visible;
    height: auto;
}

但从可用性的角度来看,使用 onclick 事件折叠/展开区域可能会更好。

编辑:我已经更新了 jsFiddle:http: //jsfiddle.net/DbuDL/1/ 以使用 JavaScript 进行鼠标单击。

您还需要在要显示/隐藏的区域内放置图像。

于 2013-08-19T10:39:05.843 回答