if($ _GET)if else problem

时间:2010-05-22 09:31:40

标签: php

需要帮助......

获取输入表单:

<select name="age">     
<option value="25-30">25-30</option>
<option value="31-40">31-40</option>        
<option value="41-50">41-50</option>
<option value="51-60">51-60</option>
</select>

示例网址

search/?age=25-30

函数php:

if ( $_GET['age'] !="25-30") $age = '("A")'; 
elseif ( $_GET['age'] !="31-40") $age = '("B")'; 
elseif ( $_GET['age'] !="41-50") $age = '("C")'; 
elseif ( $_GET['age'] !="51-60") $age = '("D")'; 
else ( $_GET['age'] !="25-30") $age = '("A")'; 

$search ="http://domain.com/?q='.$age;

问题:即使我选择了其他值(31-40,41-50,51-60),$ search内的$ age也会返回A(或25-30)

请帮助..谢谢

5 个答案:

答案 0 :(得分:5)

else应该代表一个默认值,( $_GET['age'] !="25-30")应该从中删除,以下是您应该拥有的内容:

if ( $_GET['age'] =="25-30") $age = '("A")'; 
elseif ( $_GET['age'] =="31-40") $age = '("B")'; 
elseif ( $_GET['age'] =="41-50") $age = '("C")'; 
elseif ( $_GET['age'] =="51-60") $age = '("D")'; 
else $age = '("A")'; // modify accordingly

答案 1 :(得分:3)

您可以使用switch语句或带有值的数组来更清洁,但在进入示例之前:将值设置为A,{{1}是不是更容易},B ...首先在C

回复@ Col.Shrapnels评论。哪一个看起来更好。上面的select汤,还是这个?

if

答案 2 :(得分:2)

我认为你的意思是

==

!=

答案 3 :(得分:2)

您如何看待!=运算符意味着什么?

反正

<select name="age">     
<option value="A">25-30</option>
<option value="B">31-40</option>        
<option value="C">41-50</option>
</select>

答案 4 :(得分:1)

您正在使用“不等于”(“!= ”)运算符,除非您选择 25-30 从列表中(应该导致(B),它将始终停在第一行。

对于完整代码,我会使用:

switch( $_GET['age'] ) {
  case '25-30' :
    $age = '("A")'; break;
  case '31-40' :
    $age = '("B")'; break;
  case '41-50' :
    $age = '("C")'; break;
  case '51-60' :
    $age = '("D")'; break;
  default :
    $age = '("A")';
}