对于我的网站,我制作了一个表单,其中一个表单值是他们选择的一个月。我的月份返回值为1-12,1是1月,12是12月,我正在使用下面的PHP代码来解释它。
switch ($_POST['month']) {
case '1':
$GLOBALS['month'] = 'Jan';
break;
case '2':
$GLOBALS['month'] = 'Feb';
break;
case '3':
$GLOBALS['month'] = 'March';
break;
case '4':
$GLOBALS['month'] = 'April';
break;
case '5':
$GLOBALS['month'] = 'May';
break;
case '6':
$GLOBALS['month'] = 'June';
break;
case '7':
$GLOBALS['month'] = 'July';
break;
case '8':
$GLOBALS['month'] = 'Aug';
break;
case '9':
$GLOBALS['month'] = 'Sept';
break;
case '10':
$GLOBALS['month'] = 'Oct';
break;
case '11':
$GLOBALS['month'] = 'Nov';
break;
case '12':
$GLOBALS['month'] = 'Dec';
break;
default:
$GLOBALS['month'] = '';
break;
};
echo 'month '.$month; //returns "month 12"
问题是$month
总是返回“12”,无论原始值是什么(它甚至不返回“Dec”,它只返回“12”)。我似乎无法弄清楚开关有什么问题。
简化表格
<form action="http://foo.com/foo-redirect/" method="POST" target="_blank">
<select name="month" required><option value="" disabled selected>Month</option><option value="1">January</option><option value="2">February</option><option value="3">March</option><option value="4">April</option><option value="5">May</option><option value="6">June</option><option value="7">July</option><option value="8">August</option><option value="9">September</option><option value="10">October</option><option value="11">November</option><option value="12">December</option></select>
<select name="day" required><option value="" disabled selected>Day</option><option value="12">1</option><option value="12">2</option><option value="12">3</option><option value="12">4</option><option value="12">5</option><option value="12">6</option><option value="12">7</option><option value="12">8</option><option value="12">9</option><option value="12">10</option><option value="12">11</option><option value="12">12</option><option value="12">13</option><option value="12">14</option><option value="12">15</option><option value="12">16</option><option value="12">17</option><option value="12">18</option><option value="12">19</option><option value="12">20</option><option value="12">21</option><option value="12">22</option><option value="12">23</option><option value="12">24</option><option value="12">25</option><option value="12">26</option><option value="12">27</option><option value="12">28</option><option value="12">29</option><option value="12">30</option><option value="12">31</option></select>,
<select name="year" required><option value="" disabled selected>Year</option><option value="2016">2016</option><option value="2017">2017</option></select>
</form>
我将表单提交为
月:1(1月)
日:5
年:2016
它实际上是遗漏代码中有问题的一部分,谢谢你的帮助。
我是不正确的,它实际上似乎是WordPress的问题(我使用WordPress使网站更改更容易)。虽然它说版本是PHP5.6,但它缺少PHP5的一些功能。
答案 0 :(得分:1)
$GLOBALS['month'] = '';
switch ($_POST['month']) {
case '1':
$GLOBALS['month'] = 'Jan';
break;
case '2':
$GLOBALS['month'] = 'Feb';
break;
case '3':
$GLOBALS['month'] = 'March';
break;
case '4':
$GLOBALS['month'] = 'April';
break;
case '5':
$GLOBALS['month'] = 'May';
break;
case '6':
$GLOBALS['month'] = 'June';
break;
case '7':
$GLOBALS['month'] = 'July';
break;
case '8':
$GLOBALS['month'] = 'Aug';
break;
case '9':
$GLOBALS['month'] = 'Sept';
break;
case '10':
$GLOBALS['month'] = 'Oct';
break;
case '11':
$GLOBALS['month'] = 'Nov';
break;
case '12':
$GLOBALS['month'] = 'Dec';
break;
default:
$GLOBALS['month'] = '';
break;
};
echo $GLOBALS['month'];
正确返回月份名称。
如果文件一开始的$ _POST ['month']的print_r返回一个值,那么你的错误必须在代码的后面。
1)检查包含$ _POST数据。
2)如果缺少$ _POST数据,请检查表格。
3)在switch语句结束后直接检查全局变量。
4)如果1和3返回数据,则您的错误位于代码的后面。
在您的问题更新后:
$month = $GLOBALS['month'];
echo $month;
如果您没有在其他地方编辑$ GLOBALS ['month']的值,那么应该有效。