一个完整的初学者问题。 我在页面(page2.php)上有大量的div(> 80),我想要打开的是page1.php,点击链接打开page2.php,只显示其中一个div点击了哪个链接。
我有一个基本的工作版本,通过在div中添加一个if else。到目前为止,我只在5个div中完成了这个并且它可以工作,但它似乎也是一种非常有说服力的做事方式。
第1页:
<a href="page2.php?id=r0101">this is a link</a>
第2页:
<?php
$divID = $_GET['id'];
?>
<div id="r0101" <? if($divID == r0101): ?>class="show"<? else: ?>class="hidden"<? endif; ?> >
然后应用css类来隐藏或显示div。 是否有可能在页面顶部有一个函数或者其他任何从url获取id的函数,并确定有一个带有该id的div,显示它并隐藏所有其他的?这可能是一件容易的事,但它让我感到难过。
任何帮助非常感谢。 感谢。
答案 0 :(得分:2)
更不用说div了并且在css上工作(当你转发它以隐藏/显示div)时。 您不仅可以生成标记,还可以生成css样式表。使用类似的(把它放在 你头部的结尾)。让浏览器为您完成工作;)
<style type="text/css">
div {
display: none;
}
div#<?php echo $_GET['id']; ?>:{
display: block;
}
</style>
答案 1 :(得分:1)
$divs = array('r0101', 'r0102', 'r0103');
$divID = $_GET['id'];
foreach($divs as $div)
{
echo '<div id="'.$div.'" class="';
if ($div == $divID)
{
echo 'show';
}
else
{
echo 'hidden';
}
echo '">';
}
假设我已正确阅读了这个问题,你有一组div(r0101,r0102等),并希望根据你所在的页面只显示其中一个。上面的代码创建了这些div的数组,循环并创建div。如果div与页面url中的div匹配,则div的类为“show”,否则为“hidden”。
答案 2 :(得分:0)
首先,您应该考虑一种使div动态打印的方法。类似的东西:
<?php
for($i = 1; $i <= 80; $i++):
?>
<div id="r<?php print $i; ?>">div contents</div>
<?php
endfor;
?>
此外,如果您找到了上述方法,您还可以执行以下操作:
<?php
for($i = 1; $i <= 80; $i++):
if($i == $_GET['id']){
$class = 'show';
} else {
$class = 'hidden';
}
?>
<div id="r<?php print $i; ?>" class="<?php print $class; ?>">div contents</div>
<?php
endfor;
?>
或
<?php
for($i = 1; $i <= 80; $i++):
$class = ($i == $_GET['id']) ? 'show' : 'hidden';
?>
<div id="r<?php print $i; ?>" class="<?php print $class; ?>">div contents</div>
<?php
endfor;
?>
完全相同但是(使用ternary operator)备用了几行而且(有些人认为)它会降低可读性。
答案 3 :(得分:0)
如果您希望加快下载速度,则只应输出要显示的div。你可以这样做:
$divs = array('r0101', 'r0102', 'r0103');
$divID = $_GET['id'];
foreach($divs as $div)
{
if($div == $divID){ echo '<div> /* CONTENT HERE */ </div> };
}
希望这有帮助。