使用php获取选择框值时出错


Error while getting select box value with php

我目前正在进行一个项目,用户从选择框中选择一个选项并提交一个表单,然后由PHP处理该表单,PHP代码确定选择框的值是什么,并根据该值执行一些操作。

我的选择框叫做combined_group,有两个选择值:philharmonic_orchestrasymphony_orchestra

我是这样检查选中的值的:

if($_POST['combined_group'] == "philharmonic_orchestra"){
    $_SESSION['semesterprice'] = "170";
    $_SESSION['fullprice'] = "330";
}
if($_POST['combined_group'] == "symphony_orchestra"){
    $_SESSION['semesterprice'] = "275";
    $_SESSION['fullprice'] = "530";
}

但是当PHP运行这段代码时,没有选择if语句。我知道$_POST['combined_group']的值,实际上是这两个值中的任意一个,只是PHP因为某种原因没有把它捡起来。

有人愿意帮忙吗?

编辑:我的HTML表单代码如下

<select name="combined_group" class="OBJ-1">
<option value="" selected="">Select One</option>
<option value="philharmonic_orchestra">Philharmonic Orchestra</option>
<option value="symphony_orchestra ">Symphony Orchestra</option>
</select>

客户端

<select name="combined_group">
<option value="">Select an option</option>
<option value="philharmonic_orchestra">Philharmonic Orchestra</option>
<option value="symphony_orchestra">Symphony Orchestra</option>
</select>
服务器端

if (! isset($_POST["combined_group"]))
{
   exit('not set');
}
if (trim($_POST["combined_group"]) == '')
{
   exit('not selected');
}
if (trim($_POST["combined_group"]) == 'philharmonic_orchestra')
{
   //business logic for 'philharmonic_orchestra'
}
else
{
   //business logic for 'symphony_orchestra'
}

很可能是错误的HTML语法。检查选项项是否有value属性:

<option value="...">...</option>

你的条件语句失败的原因是你的选项值中有一个空格。

<option value="symphony_orchestra ">
                                 ^ right there

你需要做的是删除它:

<option value="symphony_orchestra">
                                 ^ deleted space

技术旁注:

你的条件语句是:

if($_POST['combined_group'] == "symphony_orchestra ")
                                                  ^ notice the space

加上引号前的空格,就可以了。

  • 引号之间的任何元素都被认为是元素值的一部分。