作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个多复选框查询,如下所示
<span style="width:276px;display:inline-block;"> <input type="checkbox" name="check_list[]" value="sub_category_id = '1''">Name1</span>
<span style="width:276px;display:inline-block;"> <input type="checkbox" name="check_list[]" value="sub_category_id = '2'">Name2</span>
<span style="width:276px;display:inline-block;"> <input type="checkbox" name="check_list[]" value="sub_category_id = '3'">Name3</span>
<span style="width:276px;display:inline-block;"> <input type="checkbox" name="check_list[]" value="sub_category_id = '4'">Name4</span>
然后
<?php
$names = implode(' or ', (array)$_POST['check_list'.$i]);
echo $names;
?>
我得到了部分查询。
sub_category_id = '1'' or sub_category_id = '2' or sub_category_id = '3' or sub_category_id = '4'
使用选定的 Jquery,我能够检索 MySQL 数据(Name1、Name2、Name3、Name4),如下所示:
<select name="sub_category_id[]" id="sub_category_id[]" multiple class="chosen-select" tabindex="8">
<option value="">Selecione...</option>
<?php foreach ($arrEstados as $value => $name) {
echo "<option value='{$value}'>{$name}</option>";
}?>
</select>
$names = $_POST['sub_category_id'];
$query=implode('sub_category_id=', $names);
echo $query;
但是缺少“或”。我没有很好的 PHP 技能,所以我问:这是获取查询的正确方法吗?我没有使用 PDO 或 mysqli。
最佳答案
更改您的 html 选择元素以遵循以下内容:
<select name="check_list[sub_category_id][]" id="sub_category_id[]" multiple class="chosen-select" tabindex="8">
<option value="">Selecione...</option>
<?php
foreach ($arrEstados as $value => $name) {
echo "<option value='{$value}'>{$name}</option>";
}
?>
</select>
这样做会在你的 $_POST 中创建一个像这样的数组:
$_POST => Array
(
[check_list] => Array
(
[sub_category_id] => Array
(
[0] => 2
[1] => 3
)
)
)
然后像这样更改您的 PHP:
<?php
$names = isset($_POST['check_list']) && isset($_POST['check_list']['sub_category_id']) ? $_POST['check_list']['sub_category_id'] : NULL;
$query = "SELECT * FROM tablename WHERE ";
if(!is_null($names)){
foreach($names as $i => $name){
if($i !== 0){
$query .= " OR ";
}
$query .= "sub_category_id = '$name'";
}
}
echo($query);
//Output: SELECT * FROM tablename WHERE sub_category_id = '2' OR sub_category_id = '3'
}
?>
您可能需要更改查询以适应您的应用程序,但这将帮助您朝着正确的方向前进。
关于php - 如何将多个复选框查询更改为多个选择的 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32083048/
我是一名优秀的程序员,十分优秀!