我想根据URL参数替换页面中的内容。 理想情况下,我想使用PHP来获取:
if {{parameter is X}} display {{content X}}
if {{parameter is Y}} display {{content Y}}
..持续几页。
当前设置:
<?php if ($CURRENT_PAGE == "Index") { ?>
<div id="firstDiv">this is the standard page</div>
<?php } ?>
<?php if ($CURRENT_PAGE == "p1") { ?>
<div id-"secondDiv">this is a variation of the page</div>
<?php } ?>
然后使用
include("includes/content.php");将html块调用到页面
firstDiv按预期显示在index.php中,但是添加URL参数不会改变-仍然显示相同的div(我希望将它替换为secondDiv)
$ CURRENT_PAGE似乎不喜欢URL参数-替代方法是什么?
希望这是有道理的,我是PHP的新手。如果需要,很高兴提供更多详细信息。
在此先感谢您的帮助。
-更新-
谢谢您到目前为止的回答!
似乎我错过了自己的代码的一部分(感谢vivek_23使我意识到了这一点-我正在使用模板,对不起!)
我有一个配置文件,该文件定义了哪个页面,就像这样:
<?php
switch ($_SERVER["SCRIPT_NAME"]) {
case "index.php/?p=1":
$CURRENT_PAGE = "p1";
break;
default:
$CURRENT_PAGE = "Index";
}
?>
在我学习$ _GET之前,有什么方法可以使用当前设置?
再次感谢。
-更新2-
我已改用$ _GET方法,到目前为止,该方法似乎运行良好。我现在的问题是,未设置参数时会出现未定义的错误。我会尽量记住使用此修复程序进行更新。
$p = ($_GET['i']);
if($p == "1"){
echo '<div id="firstDiv"><p>this is the first div</p></div>';
}
感谢下面的两个回答者,他们建议使用$ _GET
答案 0 :(得分:0)
您可以像使用$_GET
if($_GET['p']==1){
echo '<div id="firstDiv">this is the standard page</div>';
}else if($_GET['p']==2){
echo '<div id="secondDiv">this is a variation of the page</div>';
}
相反!您可以将basename()
与$_SERVER['PHP_SELF']
//echo basename($_SERVER['PHP_SELF']); first execute this and check the result
if(basename($_SERVER['PHP_SELF']) == 'index'){
echo '<div id="firstDiv">this is the standard page</div>';
}else{
echo '<div id="secondDiv">this is a variation of the page</div>';
}
答案 1 :(得分:0)
您需要在URL查询字符串上发送参数,例如:
yourdomain.com?p=1
因此,使用此URL,查询字符串为“?p = 1”,其中有一个名为'p'且值为'1'的GET参数。
在PHP中读取GET参数,您可以使用关联数组$ _GET,如下所示:
$current_page = $_GET['p'];
echo $current_page; // returns '1'
其余的逻辑都可以,您可以根据p参数的值显示一个div或另一个div。 您可以在此处阅读有关如何读取查询字符串参数的更多信息:http://php.net/manual/en/reserved.variables.get.php