php - PHP、MYSQL、AJAX - 过滤多选
问题描述
有很多关于此的问题,但没有一个真正涉及选择选项。
我的问题:我有 4 个从数据库中提取多个值的全选。我想显示数据库信息,当用户选择每个项目时,它只显示用户选择的内容。
例如:框 1 - A(显示所有 A)框 2 - 年份(显示所有带有年份的 A,如果没有,则显示“没有与您的搜索匹配”框 3 等...
我的代码:
if(isset($_POST["action"]))
{
$query = "
SELECT * FROM DB";
if(isset($_POST["producer"]))
{
$producer_filter = implode("','", $_POST["producer"]);
$query .= "
WHERE producer=('".$producer_filter."')
";
}
if(isset($_POST["size"]))
{
$size_filter = implode("','", $_POST["size"]);
$query .= " OR size=('".$size_filter."')
";
}
if(isset($_POST["model"]))
{
$model_filter = implode("','", $_POST["model"]);
$query .= "OR model=('".$model_filter."')";
}
if(isset($_POST["year"]))
{
$year_filter = implode("','", $_POST["year"]);
$query .= "OR year=('".$year_filter."')";
}
$statement = $conn->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
$total_row = $statement->rowCount();
$output = '';
if($total_row > 0)
{
foreach($result as $row)
{
$output .= '
<tr><td>'.$row['producer'].'</td>
<td>'.$row['size'].'</td>
<td>'.$row['model'].'</td>
<td>'.$row['year'].'</td>
<td>'.$row['salesman'].'</td>
<td>'.$row['country'].'</td></tr>
';
}
}
else
{
$output = 'Please User Filters to Search for Parts';
}
echo $output;
}
然后是我的 Jquery:
$(document).ready(function() {
filter_data();
function filter_data() {
const action = 'fetch_data';
let producer = get_filter('producer');
let size = get_filter('size')
let model = get_filter('model')
let year = get_filter('year')
$.ajax({
url: "search.php",
method: "POST",
data: {
action: action,
producer: producer,
size: size,
model: model,
year: year
},
success: function(data) {
$('.prod').html(data);
},
});
}
function get_filter(class_name) {
var filter = [];
$('.' + class_name).each(function() {
filterData = $(this).val();
filter.push(filterData)
});
console.log(filter)
return filter;
}
$('.form-control').change(function() {
filter_data();
});
});
这可行,但是,无论它是否与我的过滤器匹配,它都会显示所有内容。有什么我可以在 Jquery 中添加的吗?
我感谢所有的帮助。
解决方案
推荐阅读
- python - 目录创建问题
- r - 创建在 R data.frame 中重复相邻值的列
- php - 我的路线在 Laravel、Apache 中返回错误
- swift - touchesBegan 功能的计时器
- redis - Kue JSON API 不返回任何数据 - 使用 AWS Redis 的 KUE
- android - IllegalStateException:将 google-services 更新到 3.2.0 时未找到匹配项
- python - if语句中的Python数组元素
- scala - 为什么 Spark Analyzer 在案例中报告“必须聚合相关标量子查询”?
- excel - 使用 PowerShell 将 Excel 文档直接创建到 SharePoint 文件夹中
- r - rmarkdown 使用带有 data.tables 列表的 kable 会丢失表格格式