我目前有一个名为"user.php“的页面,其中有一个允许用户从营养相关信息列表中选择的HTML表单,以及一些处理输入并最终将其存储到MySQL数据库中的PHP代码:
<form action="user.php" method="post">
......
<select class="sel-dropdown" name="nutri-info">
<option value="empty"></option>
<option value="<200"><200 cal</option>
<option value="200 - 399">200 - 399 cal</option>
<option value="400 - 599">400 - 599 cal</option>
<option value="600 - 799">600 - 799 cal</option>
<option value="800 - 999">800 - 999 cal</option>
<option value=">1000">> 1000 cal</option>
</select>
......
</form>
页面顶部的PHP如下所示。我想要做的是把每一种卡路里转化成一个数字,并将这个数字存储到数据库中。
...
$nutrition = $_POST['nutri-info'];
switch($nutrition){
case "<200 cal":
$calories = 1;
break;
case "200 - 399 cal":
$calories = 2;
break;
case "400 - 599 cal":
$calories = 3;
break;
case "600 - 799 cal":
$calories = 4;
break;
case "800 - 999 cal":
$calories = 5;
break;
case ">1000 cal":
$calories = 6;
break;
default:
$calories = 10;
}
但是问题是,无论我在HTML中选择哪一项,$calories的结果总是10,默认值的值。知道什么可能出了问题吗?
发布于 2016-04-14 21:34:58
$_POST['nutri-info']
中的值返回与200 - 399
类似,您正在使用200 - 399 cal
检查开关情况。
尝试从开关箱中删除cal
或在选项值中添加cal
发布于 2016-04-14 21:36:24
该开关应该包括您在HTML选择中设置的值。
switch($nutrition){
case "<200":
$calories = 1;
break;
case "200 - 399":
$calories = 2;
break;
case "400 - 599":
$calories = 3;
break;
case "600 - 799":
$calories = 4;
break;
case "800 - 999":
$calories = 5;
break;
case ">1000":
$calories = 6;
break;
default:
$calories = 10;
}
只需删除cal部件即可。
发布于 2016-04-14 21:36:28
将选项值更改为
<option value="200 - 399 cal">200 - 399 cal</option>
<option value="400 - 599 cal">400 - 599 cal</option>
<option value="600 - 799 cal">600 - 799 cal</option>
...do like this
因为表单减去了表单元素的值。
https://stackoverflow.com/questions/36638940
复制