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

时间:2014-08-10 22:20:48

标签: php forms validation

我目前正在开发一个项目,用户从选择框中选择一个选项并提交表单,然后由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>

3 个答案:

答案 0 :(得分:1)

最有可能的是HTML语法错误。检查您的选项是否具有值属性:

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

答案 1 :(得分:1)

客户端

<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'
}

答案 2 :(得分:1)

条件语句失败的原因是因为选项值的空格。

<option value="symphony_orchestra ">
                                 ^ right there

您需要做的是删除它:

<option value="symphony_orchestra">
                                 ^ deleted space

技术旁注:

你的条件陈述是:

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

使用引号前的空格,它会有效。

  • 引用之间的任何内容都被视为元素值的一部分。