从不同的页面文件中显示和隐藏DIV类

时间:2013-07-05 14:01:52

标签: php javascript jquery css ajax

我有两个不同的PHP文件:

  
      
  1. 的index.php
  2.   
  3. show.php
  4.   

-

index.php

<ul>
<li><a href="show.php?id=1">Show Div 1</a></li>
<li><a href="show.php?id=2">Show Div 2</a></li>
<li><a href="show.php?id=3">Show Div 3</a></li>
</ul>

-

show.php

<style type="text/css">
.div1 {display:none;}
.div2 {display:none;}
.div3 {display:none;}
</style>

<div class="div1">Div 1 Content</div>
<div class="div2">Div 2 Content</div>
<div class="div3">Div 3 Content</div>

-

当您在show.php中阅读css样式时,将不会显示任何内容。

如果用户点击来自<li>的{​​{1}}中的哪一个,则用户只能看到index.php .div show.php <li>点击的index.php }}

我假设这种方法会减少文件。 (就像我想知道的那样)

因为要显示的所有内容都在一个文件中(show.php)。

好吧,如何从<li>制作每个index.php只会显示show.php中每个div的内容。

4 个答案:

答案 0 :(得分:1)

你想在show.php

中这样做
<?php $id = isset($_GET['id']) ? $_GET['id'] : 0; ?>
<style type="text/css">
.div1, .div2, .div3 {display: none}
<?php if($id == 1) {
    echo '.div1 {display: block; }';
} elseif($id == 2) {
    echo '.div2 {display: block; }';
} elseif($id == 3) {
    echo '.div3 {display: block; }';
}
</style>

<div class="div1">Div 1 Content</div>
<div class="div2">Div 2 Content</div>
<div class="div3">Div 3 Content</div>

答案 1 :(得分:0)

这样的事情应该有效,但请记住,这有点像“黑客”。有更好的方法可以实现这一目标,但它们不属于您的问题范围。

的index.php:

<ul>
<li><a href="show.php?id=1">Show Div 1</a></li>
<li><a href="show.php?id=2">Show Div 2</a></li>
<li><a href="show.php?id=3">Show Div 3</a></li>
</ul>

show.php:

<style type="text/css">
.div1 {display:none;}
.div2 {display:none;}
.div3 {display:none;}

<? if($_GET['id']==1) { echo ".div1 {display:block;" } ?>
<? if($_GET['id']==2) { echo ".div2 {display:block;" } ?>
<? if($_GET['id']==3) { echo ".div3 {display:block;" } ?>
</style>
<div class="div1">Div 1 Content</div>
<div class="div2">Div 2 Content</div>
<div class="div3">Div 3 Content</div>

答案 2 :(得分:0)

这是一种糟糕的方法 - 你应该只回复相关的内容 - 而不是一堆隐藏的div。

@Styphon评论后编辑。

show.php

<div>
<?php
    $id = isset($_GET['id']) ? $_GET['id'] : 0;
    if($id == "1"){
        echo "Div 1 Content";
    }
    else if ($id == "2"){
        echo "Div 2 Content";
    }
    else if ($id == "3"){
        echo "Div 3 Content";
    }
    else{
        echo "Default content";
    }
?>
</div>

评论认为,这是一个更好的方法,但没有回答原来的问题。请阅读https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem
这个问题是XY问题的一个例子。

答案 3 :(得分:0)

的index.php:

<ul>
<li><a href="show.php?id=1">Show Div 1</a></li>
<li><a href="show.php?id=2">Show Div 2</a></li>
<li><a href="show.php?id=3">Show Div 3</a></li>
</ul>

show.php:

<style type="text/css">
.hidden {display:none;}
.display {display: block;}
</style>
<div class="<?php if(!isset($_GET['id'])||$_GET['id']==1) echo 'display'; else echo 'hidden'; ?>">Div 1 Content (default)</div>
<div class="<?php if(isset($_GET['id'])&&$_GET['id']==2) echo 'display'; else echo 'hidden'; ?>">Div 2 Content</div>
<div class="<?php if(isset($_GET['id'])&&$_GET['id']==3) echo 'display'; else echo 'hidden'; ?>">Div 3 Content</div>