如何根据它和其他元素是否有内容来确定要显示的元素

时间:2011-03-25 00:51:44

标签: php css

我在页面上有四个元素,元素1 - 4按顺序可选择通过CSS选项卡查看。这些元素是用户配置文件的一部分。

元素1:关于我
要素2:利益
要素3:在线
要素4:统计

我根据用户是否已将此信息添加到其配置文件中并将元素存储在变量中来构建这些元素:

$aboutme
$interests
$online

所有用户都有统计信息,因此该内容没有变量。

显示的用户个人资料上的标签取决于相应元素中是否有内容。

因此,如果有关于我和在线内容,将显示三个选项卡,关于我,在线和统计。

现在我需要找出最初要显示的元素。

例如,如果“关于我”仅包含内容,则最初只有“关于我”应该是可见的,而其他三个应该不可见。

如果兴趣和在线有内容,那么最初的兴趣只能是可见的,其他三个不应该是可见的。

如果关于我,兴趣和在线没有内容,那么最初统计数据应该可见。

我正在思考这里的逻辑。

用PHP编码的网站。

2 个答案:

答案 0 :(得分:1)

您需要使第一个包含内容的元素可见。它保证至少有一个元素(如果没有其他元素4)。

例如,如果我们有

$vars = array(0, 0, 1, 1);

我们需要找到第一个数组元素的索引,它等于1,我们会这样做:

foreach($vars as $key => $value) {
    if($value != 0) {
        $index = $key;
        break;
    }
}

// Now $index is 2 (3rd element)

具体的解决方案取决于元素的内容如何以及在何种变量中存储,但我相信自己实现它并不困难。

答案 1 :(得分:1)

<?php
$elements = array($aboutme, $interests, $online, $statistics);
$initially_visible = '';

foreach($elements as $key => $val) {
   if(!empty($val)) {
     $initially_visible = $key;
     break;
   }
}

foreach($elements as $key => $val) {
   echo ($initially_visible == $key) ? '<div class="visible">' : '<div class="hidden">';
   echo $val.'</div>';
}
?>