php - 带有选择选项条件的 PHP 提交表单
问题描述
我想将表单数据提交到数据库中,但首先应该在插入之前通过选择选项对其进行过滤。下面是我的表单视图:
<form method="POST">
<input type="text" name="name" placeholder="Your Name" />
<input type="text" name="username" placeholder="Username"/>
<select name="choose">
<option value="1">One</option>
<option value="2">Two</option>
</select>
<button type="submit" name="submit">Submit</button>
<!-- <input type="submit" name="submit" value="Submit" /> -->
这是过程形式:
if(isset($_POST['submit'])) {
switch(true) {
case ( isset($_POST['choose']) == "1" ):
echo "you choose 1";
break;
case ( isset($_POST['choose']) == "2" ):
echo "you choose 2";
break;
case ( isset($_POST['choose']) == "" ):
echo "you didn't choose anything";
default;
}
echo "<pre>";
print_r($_POST);
echo "</pre>";
}
例如,如果我选择Two
,结果是:
you choose 1
Array
(
[name] => aaaaaaaa
[username] => bbbbbbbbb
[choose] => 2
[submit] =>
)
仍在显示you choose 1
的是第一种情况。在将数据发送到数据库之前,我应该如何过滤数据?至少我怎么能知道数据的状态,无论是 in1, 2,
还是you didn't choose anything
?说得通?
提前致谢。
解决方案
您需要重新设计您的 switch 案例,switch 应该是一个可以评估为不同值的变量,案例是这些值:
switch($_POST['choose']){
case "1":
echo "you choose 1";
break;
case "2":
echo "you choose 2";
break;
case "":
echo "you didn't choose anything";
break;
}
当default
没有任何 case 与 value 匹配时,关键字可以用作最后一个 case,它在 switch case 场景中充当“else”:
switch($some_val){
case "1":
echo "you entered a 1!";
break;
default:
echo "You didn't enter a 1!!";
break;
}
推荐阅读
- regex - 在文本文件中查找正则表达式模式并将每个匹配项输出到新文本文件
- php - php 使用 concat_ws 在 mysql 结果中添加空格
- python-3.x - 为什么 Python `f-string` + inline for 循环在作为参数传递时会创建一个生成器?
- tensorflow - Tensorflow 2x - ModuleNotFoundError:没有名为“tensorflow.contrib”的模块
- ajax - 无法使用ajax从请求中获取数据
- r - R ggplot2条形图
- dll - Inno Setup 6 不能使用带有字符串参数的 DLL 函数,而它在 Inno Setup 5 中工作
- html - 移动版中无法删除 Carousel Bootstrap 和社交媒体图标下方的空白
- c# - 如何在 C# 中获取不和谐命令的作者
- javascript - 当我在对象数组中有图像时,无法在 Reactjs的标签中显示图像