2014-02-28 134 views
0
$sublevel = $_POST['level']; 
echo $sublevel; 
if($sublevel == "English"){ 
    echo "En"; 
}elseif($sublevel == "Computer"){ 
    echo "Com"; 
}else{ 
    echo "Error"; 
} 

为什么我的if else会显示En或Com结果?相反,即使输入正确的值 - “英语”或“计算机”,它也只会显示“错误”。我还检查了我用echo $sublevel输入的值。PHP如果其他问题,总是显示其他结果

+0

显示您的完整代码,包括您的HTML表单。不清楚你在问什么。 –

回答

2

你被点名了旅游可变$sublevel但在你的if/else语句

$sublevel = $_POST['level']; 
if($sublevel == "English"){ 
    echo "En"; 
}elseif($sublevel == "Computer"){ 
    echo "Com"; 
}else{ 
    echo "Error"; 
} 

$ordersublevel = $_POST['level']; 
if($ordersublevel == "English"){ 
    echo "En"; 
}elseif($ordersublevel == "Computer"){ 
    echo "Com"; 
}else{ 
    echo "Error"; 
} 

更新

您的代码将正常运行是检查$ordersublevel。我能想到的唯一的事情可能会导致您可能忽略的问题是提交的数据中的前导空格或尾随空格。使用trim()删除。

$ sublevel = trim($ _ POST ['level']);

+0

对不起,错字在那里。我赞同这个问题。 – user3322610

+1

这是一个heckuva“错字”,如果你问我。错别字由一个或两个字母组成,而不是整个单词。@ user3322610 –

+0

['This question'](http://stackoverflow.com/q/22010652/)与它有关。 OP需要显示完整的代码和HTML表单。那时我投票结束。 **编辑**:现在摇头,为什么突然间,OP决定接受。我的upvote仍然站在;-) –

1

因为$ordersublevel从未设置。只有$sublevel没有。因此它不是EnglishComputer,因为它什么都不是。

+0

对不起,错字在那里。我赞同这个问题。 – user3322610

+0

@ user3322610你确定使用'$ _POST'作为变量而不是'$ _GET'吗?你可以将'var_dump($ sublevel)'的输出发布到值为“Enlish”的原始问题上吗? – h2ooooooo