如何让用户选择页码?

时间:2012-01-02 15:22:50

标签: php html css

我已将信息添加到某些框中,这些框使用'float'属性进行了对齐。

所有这些框的内容太大而不适合网页,所以我想把这些框放在不同的页面上,让用户选择他想要查看的页面。

E.g:选择页面:1 2 3 ...(最后一页)

这些“页面”的内容必须是分开的。

供参考,请参阅我的css代码:

.clear {
clear: both;
}

#over-ons .imagebox,
#over-ons .contentbox
{
background-color: #C4C4A6;
float: left;
margin: 0 10px 40px 0;
padding: 10px;
border: 2px solid black;
}

#over-ons .imagebox {
width: 100px;
text-align: center;
}

#over-ons .contentbox {
width: 200px;
}

另外,请参阅我提到的“盒子”的HTML代码:

<div class="imagebox"><img src="media/images/overons/bas.png" /></div>
<div class="contentbox">
  Function: blablablabla<br />
  Name: blablabla<br />
  City: Breda<br />
  Education: HBO Informatica<br />
</div>

<div class="clear"></div>

如何创建让用户查看3个不同框的功能,具体取决于他想要查看的页码?

修改

我目前的解决方案如下所示,当我点击“第2页”时,没有任何反应:

<?php
//Vraag pagina op
$page = 1;
if (isset($_POST['page']) && is_numeric($_POST['page']))
$page = $_POST['page'];
?>

<? if ($page == 1) { ?>
<div class="imagebox"><img src="media/images/overons/pieter.png" /></div>
<div class="contentbox">
  Functie: Bedrijfsleider<br />
  Naam: Pieter<br />
  Stad: Deurne<br />
  Opleiding: HBO Informatica<br />
</div>

<div class="clear"></div>

<div class="imagebox"><img src="media/images/overons/patrick.png" /></div>
<div class="contentbox">
  Functie: Verkoper<br />
  Naam: Patrick<br />
  Stad: Roosendaal<br />
  Opleiding: HBO Bedrijfskundige Informatica<br />
</div>

<div class="clear"></div>

<div class="imagebox"><img src="media/images/overons/rick.png" /></div>
<div class="contentbox">
  Functie: Ontwikkelaar<br />
  Naam: Rick Gommers<br />
  Stad: Oosterhout<br />
  Opleiding: HBO Informatica<br />
</div>

<div class="clear"></div>
<? } 
else if ($page == 2) { ?>
<div class="imagebox"><img src="media/images/overons/bas.png" /></div>
<div class="contentbox">
  Functie: Salesmanager<br />
  Naam: Bas<br />
  Stad: Breda<br />
  Opleiding: HBO Informatica<br />
</div>

<div class="clear"></div>

<div class="imagebox"><img src="media/images/overons/robbert.png" /></div>
<div class="contentbox">
  Functie: Administrateur<br />
  Naam: Robbert Tuerlings<br />
  Stad: Goirle<br />
  Opleiding: HBO Bedrijfskundige Informatica<br />
</div>

<div class="clear"></div>    

<div class="imagebox"><img src="media/images/overons/timothee.png" /></div>
<div class="contentbox">
  Functie: Implementatie Technicus<br />
  Naam: Timothee<br />
  Stad: Breda<br />
  Opleiding: HBO Informatica<br />
</div>

<div class="clear"></div>
<? } 
else { ?>
<div class="contentbox">
You didn't select a proper page!
</div>
<? } ?>

2 个答案:

答案 0 :(得分:3)

想象一下,您当前的页面名为 index.php 。首先,您要在HTML中创建指向您网页的链接,如下所示:

<a href="index.php?page=1">Page 1</a>
<a href="index.php?page=2">Page 2</a>
<a href="index.php?page=3">Page 3</a>

对于清晰的代码,您只需将“框”的内容放在一个数组中,然后输出该页面的相应条目:

<?php
   $content = array{ "Page 1 data", "Page 2 data", "Page 3 data" };

   //Fetch the page
   $page = 1;
   if (isset($_GET['page']) && is_numeric($_GET['page']))
      $page = $_GET['page'];
?>
<div class="contentbox">
   <? echo $content[($page - 1)]; ?>
</div>

另一种解决方案(不太容易阅读和维护,但如果您的内容非常复杂,则更容易)您可以直接获取页码,并在常规if else显示他们请求的框。

<?php
   //Fetch the page
   $page = 1;
   if (isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page'] > 0)
      $page = $_GET['page'];
?>

<? if ($page == 1) { ?>
<div class="contentbox">
   Your first box for page 1
</div>
<? } 
   else if ($page == 2) { ?>
<div class="contentbox">
   Your second box for page 2
</div>
<? }
   else if ($page == 3) { ?>
<div class="contentbox">
   Your third box for page 3
</div>
<? } 
   else { ?>
<div class="contentbox">
   You didn't select a proper page!
</div>
<? } ?>

但是,你们有1001种方法可以做到这一点。这实际上取决于您的需求和您想要的方式。硬编码越多,代码通常得到的丑陋......; - )

答案 1 :(得分:0)

一种方法是在页面上设置所有分区,并且只显示用户点击过的那个分区...为此,您可以创建所有3个div,默认情况下将它们隐藏起来并通过javascript trigget动作...

另一种方法是通过PHP的输出缓冲来实现这一目标:

ob_start(); // begin collecting output

include 'myfile.php';

$result = ob_get_clean(); // retrieve output from myfile.php, stop buffering

$ result将包含文本..

第一种方法很容易让大多数人使用它。但是你特别说你已经为所有3个div创建了所有单独的页面我必须添加php方法..