我目前正在开发一个项目,用户从选择框中选择一个选项并提交表单,然后由PHP处理表单,PHP代码确定选择框的值是什么,并根据那个价值。
我的选择框名为combined_group
,有两个选择值:philharmonic_orchestra
和symphony_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>
答案 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
使用引号前的空格,它会有效。