0

在一个网页中,我有一个侧边栏,其中的项目具有相同性质但彼此不同的内容;例如:

<ul> 
  <li>Science books</li>
  <li>Fiction books</li>
  <li>History books</li>
</ul>

如果用户点击其中任何一个,就会向他显示一堆相关的书籍。

我的问题是:开发人员是否必须为这些项目中的每一个创建单独的页面以在其中显示它们的内容,或者有没有办法创建一个公共页面,以便一旦单击一个项目,它的内容就会显示在该公共页面中?(我在这里不是在谈论使用 JavaScript)。

4

3 回答 3

4

是的,使用 PHP 是可能的,我建议您将书籍存储在具有良好结构的 MYSql 数据库中,类似于:

Type   -   Name           -   Genre
Book   -   My Adventure   -   Science
Book   -   The End        -   History

您可以为图像等添加更多列。

使用 PHP 你可以让一页说books.php然后链接到它books.php?type=science

然后在这个 php 页面上,您可以连接到您的数据库并进行查询以选择所有类型为科学的书籍,您可以从 url 获取变量$_GET["type"]

像这样的东西:

<?php
$con=mysqli_connect("ip","user","pw","my_db");
$type=$_GET["type"];
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM products WHERE genre = $type");

while($row = mysqli_fetch_array($result))
  {
  echo $row['type'] . " " . $row['name']. " " . $row['genre'];
  echo "<br>";
  }

mysqli_close($con);
?>

在上面的示例中, products 是您的表的名称。获取书籍的查询在$result变量上,我们从表 products 中选择所有结果,其中流派是您的 url 参数

于 2013-08-30T08:01:30.757 回答
2

不必为每个页面创建一个新页面,您可以简单地在 URL 中传递一个 GET 变量并相应地加载结果,例如

<a href="page.php?content=books">See Books</a>

page.php

例如,只需根据$_GET值显示内容

if(!empty($_GET['content'])) { //Just to make sure content is set and its not empty
   $show_content = $_GET['content']; //books
}

if($show_content == 'books') {
   //Show Books
} elseif($show_content == 'gadgets') {
   //Gadgets Go Here
}

注意:只需确保验证并清理该$_GET['content'] 值,因为任何用户都可以轻松修改它。

于 2013-08-30T08:01:24.060 回答
-1

你可以用另一种方式来做:

<ul> 
 <li>Science books
    <ul>
      <li>
         <div class="hidden"> YOUR BOOK CONTENT </div>
      </li>
    </ul>
 </li>
 <li>Fiction books</li>
 <li>History books</li>
</ul>
于 2013-08-30T08:00:54.660 回答