我正在使用HTML列出我的所有表格(我在phpMyAdmin中看到的)。
我只想“隐藏”(仅在HTML中)表格名称中包含“XYZ”的那些。
我做了一次尝试 - 但我没有成功。
<?php foreach($tables as $table):?>
<li <?php if($table['XYZ'] == $theTable):?>class="active"<?php endif;?>>
<a href="<?php echo site_url('db/'.$theDB."/".$table['table']);?>"><span class="fui-list-small-thumbnails"></span> <?php echo $table['table'];?></a>
</li>
<?php endforeach;?>
答案 0 :(得分:1)
当然可以在HTML源代码中包含列表项,但隐藏...
<?php
foreach($tables as $table) {
$pos = strpos($table['table'],'XYZ');
$class = $pos === false ? 'style="display:none"' : '';
$href = site_url('db/'.$theDB."/".$table['table']);
echo "<li {$class}><a href=\"{$href}\"><span class=\"fui-list-small-thumbnails\"></span> ".$table['table']."</a></li>";
}
?>
或者甚至不在HTML源代码中包含列表项
<?php
foreach($tables as $table) {
$pos = strpos($table['table'],'XYZ');
if ($pos === false) {
$href = site_url('db/'.$theDB."/".$table['table']);
echo "<li><a href=\"{$href}\"><span class=\"fui-list-small-thumbnails\"></span> ".$table['table']."</a></li>";
}
}
?>
测试字符串是否包含另一个字符串的关键函数是strpos。我也重构了你的代码,因此在&#34; view&#34;之间切换的次数减少了。和&#34;控制器&#34; (其中视图是回显的HTML,控制器是逻辑),因为这使代码更具可读性。
答案 1 :(得分:0)
<?php foreach($tables as $table):?>
<li <?= (($table['XYZ'] == $theTable) ? 'style="display:none"' : "");?>
<a href="<?= site_url('db/'.$theDB."/".$table['table']);?>"><span class="fui-list-small-thumbnails"></span> <?php echo $table['table'];?></a>
</li>
<?php endforeach;?>
尝试使条目不可见,但如果你
则会更高效a)在查询中过滤或
b)在打印HTML之前过滤
答案 2 :(得分:0)
您可以像这样隐藏表格可见性
<li <?php if($table['XYZ'] == "XYZ"):?>style="visibility: hidden;"<?php endif;?>>
或者您可以更改可见性:隐藏;显示:无;
答案 3 :(得分:0)
我认为你可以这样做。
<?php foreach($tables as $table):?>
$hideTable = "";
$hideTable = ($table['XYZ'] == $theTable)? "style='display:none'":'';
<li <?php echo $hideTable;?> >
<a href="<?php echo site_url('db/'.$theDB."/".$table['table']);?>"><span class="fui-list-small-thumbnails"></span> <?php echo $table['table'];?></a>
</li>
<?php endforeach;?>
尝试以上代码可能会对您有所帮助。