我有一个foreach外观,检查用户是否有图片。如果用户没有图片我想隐藏显示图片的<li>
标签。
在我的else
内,我怎么说,对于这个用户隐藏标签2?
我尝试使用echo 'id="tabHeader_2" style:"visibility:hidden"
;但这不起作用。我需要一个对tab2的引用,不是吗?
<div id="picture<?php echo $i ?>" style="display: none;">
<?php
$picture = $user->pic;
if(isset($picture))
{
// show picture.
}
else
{
// hide tab2
}
?>
</div>
然后是标签列表:
<div class="profiles">
<div id="tabContainer">
<div class="tabs">
<ul>
<li id="tabHeader_1"> Profile </li>
<li id="tabHeader_2"> Picture </li>
</ul>
</div>
<div id="tabsContent">
<div class="tabpage" id="tabpage_1"></div>
<div class="tabpage" id="tabpage_2"></div>
</div>
<script src="<?php echo Yii::app()->theme->baseUrl; ?>/js/tabs.js"></script>
</div>
</div>
页面的图片:
答案 0 :(得分:0)
我对您的代码并不是100%确定,但您使用的isset()
不正确,因为您将该变量设置在该检查后面,因此它将在100%的时间内设置。您可能希望检查empty()
或is_file()
,具体取决于该变量中的内容。
<!-- This display: none seems strange if you are going to show the wrapped elements -->
<div id="picture<?php echo $i ?>" style="display: none;">
<?php
$picture = $user->pic;
if(!empty($picture)) {
// show picture.
}
else {
// hide tab2
}
?>
</div>
如果你输入真实的代码,就会更容易看出你如何布置元素。
答案 1 :(得分:-1)
喜欢这样: -
<div class="tabs">
<ul>
<?php
$i = 1;
foreach($yourarray as $key => $value){
if(isset($value) && $value != '')
?>
<li id="tabProfileHeader<?php echo $i;?>"> Profile </li>
<li id="tabPictureHeader<?php echo $i;?>"> Picture </li>
<?php
$i++;
}
?>
</ul>
</div>