0

我有两个不同的 PHP 文件:

  1. 索引.php
  2. 显示.php

-

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>

-

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

如果用户从 中单击哪一个,则用户只能看到<li>从中单击的哪一个。index.php.divshow.php<li>index.php

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

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

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

4

4 回答 4

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>
于 2013-07-05T14:09:10.903 回答
0

这是一种不好的方法 - 您应该只发送相关内容作为响应 - 而不是一堆隐藏的 div。

在@Styphon 发表评论后编辑。

显示.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 问题的一个例子。

于 2013-07-05T14:09:16.363 回答
0

索引.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>

显示.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>
于 2013-08-06T12:27:56.097 回答
0

像这样的东西应该可以工作,但请记住,这是一种“黑客”。有更好的方法可以做到这一点,但它们超出了您的问题范围。

索引.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>

显示.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>
于 2013-07-05T14:08:09.317 回答