【问题标题】:Hide DIV when content displayed is has NULL value in database当显示的内容在数据库中具有 NULL 值时隐藏 DIV
【发布时间】:2016-10-06 16:38:08
【问题描述】:

我有一个字体很棒的 div,它漂浮在我的图像顶部,以提供从 mysql 数据库中提取的图像详细信息。

当我将鼠标悬停在这个(信息)字体真棒图标上时,会打开一个带有 mysql 内容的小内联。

现在当内容为 NULL 时,我根本不希望字体 awesome 出现。

以下是我的代码。

<div id="hotspot1" class="hotspot" style = "position: fixed;">
                <i class="fa fa-info-circle" style="font-size:48px;color:cyan"></i>
                <div class="hover-popup well">
                <?php 
                    if ($details == null) {
                        echo "class='display-none';";
                    }
                    else {
                        echo $details; 
                    }
                    ?>
                </div>
            </div>

这个悬停弹出窗口的 CSS 是

#hotspot1 {
            right:93%;
            top:3%;
        }

        .hotspot {
            line-height:20px;
            text-align:center;
            position:absolute;
            cursor: pointer;
        }

        .hotspot .text {
            width:80px;
            height:20px;
        }

        .hover-popup {
            display:none;
            z-index:auto;
        }

        .hotspot:hover .hover-popup {
            display:inline;
            position:absolute;
            left:100%;
            top:0;
            width:300px;
            height: auto;
            border:2px solid #000;
            margin: 20px;
            padding: 20px;
            font-size: 16px;
            background: #FBF0D9;
            font-style: oblique;

        .display-none {
            display:none;
        }

现在当有一个空值时,它会直接显示“class= 'display-none'”

如何在空值期间完全消失图标?

我应该使用 JS 还是 JQuery?

【问题讨论】:

  • 提示:在此处查看您的 html 源代码。语法和逻辑错误。

标签: javascript php jquery mysql sql


【解决方案1】:

class 属性需要在它所应用的元素内,您目前在任何元素之外echoing,这就是您在页面上看到它的原因。

我无法确切知道您要实现的目标是什么,但是当$details 不是null 时,您似乎想显示一些特定的HTML。

这至少应该给你一些线索,

<div id="hotspot1" class="hotspot" style="position: fixed;">

   <?php if ($details != null): ?>

      <i class="fa fa-info-circle" style="font-size:48px;color:cyan"></i>

      <div class="hover-popup well">
         <?= $details; ?>
      </div>

   <?php endif; ?>

</div>   

在上面的代码中,如果$details不是null那么会输出PHP块之间的HTML,否则不会。您可能希望将所有 HTML 放在 PHP 块之间。

【讨论】:

  • 哦,顺便说一句,当值为空时这有效。如果图标为空字符串,我需要做些什么来避免图标显示?如何将 else if 合并到您使用的三元运算符中?
  • 1) 使用松散比较,null 相当于一个空字符串 - php.net/manual/en/language.operators.comparison.php。 2)谷歌“php else if”并点击第一个结果。
【解决方案2】:

您将样式和类与上述表示法混淆了,也许这样会更好?

<div id="hotspot1" class="hotspot" style = "position: fixed;">
    <i class="fa fa-info-circle" style="font-size:48px;color:cyan"></i>

        <?php
            $style=is_null( $details ) ? "style='display:none'" : "";
        ?>
        <div class="hover-popup well" <?php echo $style;?> >

        </div>
</div>

或者,不要像最初尝试那样添加内联样式分配一个类,而是在某处的 css 中定义该类。然后,您可以使用类似的符号,但改为引用该类 - 例如:

<style>.dispnone{ display:none; }</style>

<?php
    $class=is_null( $details ) ? "class='dispnone'" : "";
?>

<div class="hover-popup well" <?php echo $class;?> >

【讨论】:

  • 嗯...我认为您发布的内容可能会引发“重复的类声明”错误。
  • 从头开始 ^ 我的错误 ;-)
  • 您好,这两个都只返回了弹出的图标,只是没有数据,有和没有空数据。它适用于@steve 的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2011-01-15
相关资源
最近更新 更多