我有一个HTML表单和一些PHP,但它总是回应" 100 TEST"无论提交的案例如何。默认情况正常。
HTML:
<form class="page-search" action="page.php" method="post">
<input type="text" name="page" autofocus maxlength="3" placeholder="100" style="width: 50px;">
<input type="submit" style="visibility: hidden;">
</form>
PHP:
<?php
$pageid = isset($_POST['page']);
switch ($pageid) {
case '100':
echo '100 TEST';
break;
case '200':
echo '200 TEST';
break;
case '300':
echo '300 TEST';
break;
default:
echo 'DEFAULT';
break;
}
?>
我错过了一些非常明显的东西吗?我因为需要提出这个问题而自责,但似乎无法解决这个问题!
答案 0 :(得分:1)
更改
$pageid = isset($_POST['page']);
要
$pageid = isset($_POST['page']) ? $_POST['page'] : 'default value if you need one';
由于代码正在检查isset()
方法的结果,该结果将是boolean
,但switch
对$_POST['page']
值本身感兴趣。
正如我在评论中提到的,这是示例代码的替代方法:
echo isset($_POST['page']) ? $_POST['page'] . ' TEST' : 'DEFAULT';
答案 1 :(得分:0)
isset
如果var存在并且其值不是NULL,则返回TRUE,否则返回FALSE。
将您的代码更改为此
<?php
if (isset($_POST['page'])) $pageid = $_POST['pageid'];
答案 2 :(得分:0)
isset将返回布尔值。所以这就是问题所在。
你没有关闭你关闭bracis for switch也是,isset被选中但是没有为变量$ pageid分配值
$pageid = isset($_POST['page']) ? $_POST['page'] : 0;
switch ($pageid) {
case '100':
echo '100 TEST';
break;
case '200':
echo '200 TEST';
break;
case '300':
echo '300 TEST';
break;
default:
echo 'DEFAULT';
break;
}