Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中从url字符串隐藏/显示div_Php_Url_Show Hide - Fatal编程技术网

在php中从url字符串隐藏/显示div

在php中从url字符串隐藏/显示div,php,url,show-hide,Php,Url,Show Hide,一个完整的初学者问题。 我在一个页面(page2.php)上有大量div(>80),我想做的是打开page1.php,单击一个链接打开page2.php,并根据单击的链接只显示其中一个div 通过向divs添加if-else,我有了一个基本的工作版本。到目前为止,我只在5个div上做过这件事,它很有效,但它似乎也是一种相当雄辩的做事方式 第1页: <a href="page2.php?id=r0101">this is a link</a> 第2页: <?p

一个完整的初学者问题。 我在一个页面(page2.php)上有大量div(>80),我想做的是打开page1.php,单击一个链接打开page2.php,并根据单击的链接只显示其中一个div

通过向divs添加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; ?> >

class=“hidden”>
然后应用css类来隐藏或显示div。 有没有可能在页面顶部有一个函数或任何东西,从url获取id,找出有一个带有该id的div,显示它并隐藏所有其他id?这可能是一件容易的事,但它让我感到困惑

非常感谢您的帮助。 谢谢。

$divs=array('r0101','r0102','r0103');
$divID=$_GET['id'];
foreach($div作为$div)
{
回声';
}
假设我正确地阅读了问题,您有一组div(r0101、r0102等),并且希望根据您所在的页面仅显示其中一个div。上面的代码创建这些div的数组,循环并创建div。如果div与页面url中的div匹配,则div的类为“show”,否则为“hidden”。

$divs=array('r0101','r0102','r0103');
$divID=$_GET['id'];
foreach($div作为$div)
{
回声';
}

假设我正确地阅读了问题,您有一组div(r0101、r0102等),并且希望根据您所在的页面仅显示其中一个div。上面的代码创建了这些div的数组,循环并创建div。div的类是“显示”,如果div与页面URL匹配div,并且“隐藏”,否则。

首先,您应该考虑一种使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;
?>


首先,你应该考虑一种使你的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;
?>


更不用说div和css了(因为你可以通过它来隐藏/显示div)。 您不仅可以生成标记,还可以生成css样式表。使用一个类似的(放在 头部的末端)。并让浏览器为您完成工作;)


div{
显示:无;
}
分区#:{
显示:块;
}

更不用说div和css了(当你通过它来隐藏/显示div时)。 您不仅可以生成标记,还可以生成css样式表。使用一个类似的(放在 头部的末端)。并让浏览器为您完成工作;)


div{
显示:无;
}
分区#:{
显示:块;
}

如果要加快下载速度,应只输出要显示的div。你可以这样做:

 $divs = array('r0101', 'r0102', 'r0103');
$divID = $_GET['id'];
foreach($divs as $div)
{
    if($div == $divID){ echo '<div> /* CONTENT HERE */ </div> };
}
$divs=array('r0101','r0102','r0103');
$divID=$_GET['id'];
foreach($div作为$div)
{
如果($div==$divID){echo'/*此处的内容*/};
}

希望这对您有所帮助。

如果您想加快下载速度,您应该只输出要显示的div。你可以这样做:

 $divs = array('r0101', 'r0102', 'r0103');
$divID = $_GET['id'];
foreach($divs as $div)
{
    if($div == $divID){ echo '<div> /* CONTENT HERE */ </div> };
}
$divs=array('r0101','r0102','r0103');
$divID=$_GET['id'];
foreach($div作为$div)
{
如果($div==$divID){echo'/*此处的内容*/};
}

希望这能有所帮助。

使用jquery/javascript会变得越来越简单,您可以将所有内容都保存在一个页面上。虽然如此,但我不能依赖javascript来完成这项工作,不幸的是,这是一个非常严格的环境。使用jquery/javascript会变得越来越简单,你可以把所有的东西都放在一个页面上。但我不能依赖javascript来完成这一切,不幸的是,这是一个非常严格的环境。好吧,我想我会遵循这一点,但我在每个div中都有特定的独特内容,所以我不确定我是否可以使用它,可以吗?它将创建所有div,但不允许所有内容?(有很多内容)内容来自哪里?你可以将它包含在数组中。我必须从InDesign文档中复制所有内容,这些文档长达20页A4,我认为将这些内容放入一个数组中所做的工作与将其放在页面上所做的工作一样多?我会使用上面由Eineki提供的css解决方案,看起来更加优雅。好的,我想我遵循这一点,但我在每个div中都有特定的独特内容,所以我不确定我是否可以使用它,可以吗?它将创建所有div,但不允许所有内容?(有很多内容)内容来自哪里?你可以将其包含在数组中。我必须从InDesign文档中复制所有内容,这些文档长达20页A4,我认为将这些内容放入一个数组中所做的工作与将其放在页面上所做的工作一样多?我会使用上面由Eineki提供的css解决方案,看起来更加优雅。感谢您的回复。有没有办法将带有打印命令的div移出循环?和这里发布的其他解决方案一样,我需要在每个div中放置唯一的自定义内容,而且有很多。您的内容来自哪里?如果你写下你所有的内容(这很奇怪!!!),你也可以写下你所有div的If条件。。。否则,我建议使用类似“$contents=array(0=>'contentdivid0',1=>'contentdivid1');”并在上面的代码处替换为
div contents
,谢谢您的回复。有没有办法将带有打印命令的div移出循环?和这里发布的其他解决方案一样,我需要在每个div中放置唯一的自定义内容,而且有很多。您的内容来自哪里?如果你写下你所有的内容(这很奇怪!!!),你也可以写下你所有div的If条件。。。否则,我建议使用类似“$contents=array(0=>'content-div-id 0',1=>'content-div-id