在url中传递多个变量

时间:2014-03-31 08:04:06

标签: php

你好,我有一个页面在url中传递2个变量,并使用switch包含不同的php页面。

这是我的index.php代码(用于模板)

<a href="?p=about">about </a> | <a href="?p=gallery">gallery</a>

<?php
$x=isset($_GET['p'])?$_GET['p']:"";
switch($x)
{
 case"about":include("about.php");break;
 case"gallery":include("gallery.php");break;
 default:include("home.php");
}
?>

我的gallery.php的代码

<a href="?p=gallery&albumID=1">ALBUM 1</a> | <a href="?p=gallery&albumID=2">ALBUM 2</a>

<?php
$y=isset($_GET['p'])?$_GET['p']:"";
switch($y)
{
 case 1:include("album1.php");break;
 case 2:include("album2.php");break;
}
?>

和我的album1.php的代码

<img src="img1.png"><img src="img2.png"><img src="img3.png">

我的问题是我打开链接http://sample.com/?p=gallery&albumID=1 它加载两个PHP文件。它看起来像这个

关于|画廊 专辑1 |专辑2 图片1图片2图片3

我想在不更改链接的情况下删除包含的php文件(gallery.php) http://sample.com/?p=gallery&albumID=1

是否有可能删除它?或者在加载链接时不包括

2 个答案:

答案 0 :(得分:0)

在包含文件被包含后,没有(微不足道的)方法删除它。

但是,如果没有包含相册,为什么不包含导航链接?像这样(gallery.php):

<?php
$y=isset($_GET['albumID'])?$_GET['albumID']:"";
switch($y)
{
 case 1:include("album1.php");break;
 case 2:include("album2.php");break;
 default: echo '<a href="?p=gallery&albumID=1">ALBUM 1</a> | <a href="?p=gallery&albumID=2">ALBUM 2</a>'; break;
}
?>

答案 1 :(得分:0)

试试这个:

<a href="?p=gallery&albumID=1">ALBUM 1</a> | <a href="?p=gallery&albumID=2">ALBUM 2</a>

<?php
$x=isset($_GET['p'])?$_GET['p']:"";
$y=isset($_GET['albumID'])?$_GET['albumID']:"";
if ($y != "" && $x != "" && $x == "gallery")
{
switch($y)
{
 case 1:include("album1.php");break;
 case 2:include("album2.php");break;
}
} else {
switch($x)
{
 case"about":include("about.php");break;
 case"gallery":include("gallery.php");break;
 default:include("home.php");
}

}

?>
相关问题