我正在尝试根据用户在我的 php 文件 list.php
中选择的值过滤出 MYSQL 表
我的表 users
有字段 stdYr
,其中元素的值为 S00, S01, ... S40
。
在 html 正文中,我有这段代码:
<form method="post" role="form" action="list.php">
<div>
<select multiple>
<option value="all">Select</option>
<option value="S00">74</option>
<option value="S01">75</option>
<option value="S02">76</option>
...
<option value="S40">114/option>
</select>
<button type="submit"></button>
</div>
</form>
然后,我想选择具有选定 stdYr
值的那些。
我想出的方法是通过 $_POST
传递 option
的值:
if(isset($_POST['S00']) || isset($_POST['S11']) || ...
... || isset($_POST['S40'])) {
/*some code to get only those set values*/
$query="SELECT * FROM users WHERE stdYR = '/*some stuff*/'";
}
但是对于不同的可能值选择,我不知道该怎么做... 即使有了解决方案,我也认为这种方法非常重复和愚蠢。 我该如何处理这些事情?
非常感谢您的帮助!谢谢:D
最佳答案
您的表单不正确。您的 select
必须有一个 name
属性才能提交给服务器。
<select name="options[]" multiple>
^^^^^^^^^^^^^^^
<option ...>
...
</select>
注意名称字段上的 []
。这将告诉 PHP 接受多个值,使 $_POST['options']
本身成为一个数组。然后这是一个简单的问题:
foreach($_POST['options'] as $option) {
insert_into_db($option);
}
关于php - 具有用户选择的 OPTION 值的 MYSQL SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27508269/