2011-05-21 141 views
2

我有一个菜单下面的代码中提到的href ...如果条件在PHP

<ul class="left_menu"> 
    <li class="odd"><a href=\"?x=nk\">NOKIA</a></li> 
    <li class="even"><a href="services.html">SONY ERISSON</a></li> 
    <li class="odd"><a href="services.html">LG</a></li> 
    <li class="even"><a href="services.html">ALCATEL</a></li> 
    <li class="odd"><a href="services.html">BIRD</a></li> 
    <li class="even"><a href="services.html">SAMSUNG</a></li> 
    <li class="odd"><a href="services.html">DO MOBILE</a></li> 
    <li class="even"><a href="services.html">iPHONE</a></li> 
    <li class="odd"><a href="services.html">ETEL</a></li> 
    <li class="even"><a href="services.html">HTC</a></li> 
    <li class="odd"><a href="services.html">BLACKBERRY</a></li> 
    <li class="even"><a href="services.html">I-MATE</a></li> 
    <li class="odd"><a href="services.html">VODAFONE</a></li> 
    </ul> 


<?php 
$page = $_GET['x']; 
    switch ($page) 
    { 
    case "nk": 
    include("nokia.php"); 
    break; 

case "SONY ERISSON": 
    include("sony_erisson.php"); 
    break; 

case "LG": 
include("lg.php"); 
    break; 

case "ALCATEL": 
    inlcude("alcatel.php"); 
    break; 

case "BIRD": 
include("bird.php"); 
    break; 

case "SAMSUNG": 
    include("samsung.php"); 
    break; 

case "DO MOBILE": 
    include("do_mobile.php"); 
    break; 

case "iPHONE": 
    include ("iphone.php"); 
    break; 

case "ETEL": 
    include ("etel.php"); 
    break; 

case "HTC": 
    include ("htc.php"); 
    break; 

case "BLACKBERRY": 
    include ("blackberry.php"); 
    break; 

case "I-MATE": 
include ("imate.php"); 
    break; 

case "VODAFONE": 
include ("vodafone.php"); 
    break; 


default: 
    include("default.php"); 
} 
?> 

现在我需要做的是..我需要包括每一个页面的内容,一旦用户点击特定的电话类别。我只需要做..现在让我们说..如果诺基亚是点击..然后我需要包括nokia.php内容到这个页面,这是index.php ..我怎么做tihs?我上面写了一些代码..但它不工作..任何人都可以帮助我..

+2

如果我明白你的意思,你需要做的就是将所需的GET值添加到你的链接中。例如:services.html?x = catname – 2011-05-21 19:17:18

回答

1

那些反斜杠在你的代码中做什么? ;)

<a href=\"?x=nk\">

如果删除它们,也许它会工作

+0

以及我试过..它抽了这个错误消息:未定义的索引:x在C:\ wamp \ www \ mobile \ index.php在行156上,这是156行的代码:'$ page = $ _GET ['x'];' – user755673 2011-05-21 19:30:18

+1

add'if(isset($ _GET ['x'])){your rest of your code}'你看到这个错误,因为在你点击之前$ _GET为空诺基亚 – 2011-05-21 19:35:29

+0

我试过你的代码。这是我怎么做。'if(isset($ _GET ['x'])){my code} else {echo'GET is not set'; }'因此,我能够看到“GET未设置”,这意味着我的$ _GET ['x']不具有值。我怎么才能得到' NOKIA'的价值'一旦用户点击我需要阅读的内容nokia.php到我的index.php这就是为什么我需要得到的价值' NOKIA' – user755673 2011-05-22 10:59:06

1

你不需要逃避HTML报价:

<li class="odd"><a href="?x=nk">NOKIA</a></li> 

,但如果你从一个HTML reffering你不能在其中运行php代码。你必须有文件的php扩展才能运行它。

+0

好吧,我试过..它在第156行的C:\ wamp \ www \ mobile \ index.php中添加了这个错误信息:未定义的索引:x,这是第156行的代码:$ page = $ _GET ['x']; – user755673 2011-05-21 19:27:41

+0

请检查它.. – user755673 2011-05-21 19:34:16

+0

当你收到你的错误时,你的网址是如何显示的?正确的网址必须是“... /?x = nk” – Headshota 2011-05-21 19:42:07

1

可以减少你这样的代码:

$x = $_GET['x']; // the name of the file 
if (isset($x)) { 
    $filename = "/path/to/".$x.".php"; 
    if (file_exists($filename)) { 
     include($filename); 
    } 
    else { 
     include("default.php"); 
    } 
} 
+0

不太好,isset检查得太晚(错误)并且很容易用这种代码破解(你不检查$ x中的内容) – 2011-05-21 20:37:47

+0

因为这只是一个例子;) – 2011-05-21 20:41:20

0

我也同意瓦西里。

嗯,我认为整个事情需要重新设计(只是我的观点),建立一个网站没有一个单一的入口点让我想起很多很多以前..在运行中,你将面临许多方面的缺点。

如果你不能承诺一个MVC,至少用旧式的单入口点这种方式,你只需要在一个地方加载一次。

这意味着你永远不会直接调用文件是这样的:

<a href=somescript.php>Click me</a> 

insted的你做

<a href=index.php?scr=somescript>Click me</a>如右图如上所述。


但是如果你不知道的东西是向前发展......

- 你可以甚至无需刷新页面加载PHP脚本的结果(如数据库查询或其他),我用它很多html格式[http xml连接GET或POST - 我使用POST自己]

- 您甚至可以加载css文件或脚本或更改页面内容而无需再次刷新页面。

- 可以使用MVC有事情做esaily和受控

- 能在飞行在你的代码随时随地创建CSS用PHP

- 可以输出任何东西甚至取消先前的字符串输出中或取消以前css或js之前加载的,而不涉及如何以及在哪里显示所有这些内容。把它想象成一个巨大的管道,任何脚本都会添加或删除东西,最终所有这些都会得到回应。 MVC模式是与它相关的一些关键字。

只要时间允许实施新技术,我认为这是值得的。

+0

请更多的解释。高度赞赏你的评论。 – user755673 2011-05-22 10:49:48