javascript - 如何在ajax和php中以递增和递减顺序进行选择?
问题描述
早上好,抱歉我的无知,但我无法选择订购表格中的产品,我正在更改 PHP 中的 Ajax 产品过滤器,我在 html 中制作了选择代码,然后我做了基础知识来接收php中的数据并给出在sql中显示的顺序,但它不起作用......你能帮我解决这个问题吗?下面是代码...
<html>
<div class="list-group">
<form method="GET" name="form1">
<p class="text" align="left"> <h3>Ordenar por:</h3>
<select name="ordenar" onchange="this.form.submit()">
<option value="nenhum" Selected> </option>
<option value="pasc" > Preço Ascendente </option>
<option value="pdesc" > Preço Descendente </option>
</select>
</p>
</form>
</div>
<?php
//fetch_data.php
if(!isset($_GET["ordenar"])){
$ordenar="pasc";
}
else{
$ordenar=$_GET["ordenar"];
}
if($ordenar=='pasc'){
$ordenapor="product_price asc";
}
if($ordenar=='pdesc'){
$ordenapor="product_price desc";
}
include('BD_Connect.php');
if(isset($_POST["action"]))
{
$query = "SELECT*FROM produto WHERE product_status = '1' order by $ordenapor";
if(isset($_POST["minimum_price"], $_POST["maximum_price"]) && !empty($_POST["minimum_price"]) && !empty($_POST["maximum_price"]))
{
$query .= " AND product_price BETWEEN '".$_POST["minimum_price"]."' AND '".$_POST["maximum_price"]."' ";
}
if(isset($_POST["brand"]))
{
$brand_filter = implode("','", $_POST["brand"]);
$query .= " AND product_brand IN('".$brand_filter."') ";
}
if(isset($_POST["ram"]))
{
$ram_filter = implode("','", $_POST["ram"]);
$query .= " AND product_ram IN('".$ram_filter."') ";
}
if(isset($_POST["storage"]))
{
$storage_filter = implode("','", $_POST["storage"]);
$query .= " AND product_storage IN('".$storage_filter."') ";
}
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
$total_row = $statement->rowCount();
$output = '';
if($total_row > 0)
{
foreach($result as $row)
{
$output .= '
<div class="col-sm-4 col-lg-3 col-md-3">
<div style="border:1px solid #ccc; border-radius:5px; padding:16px; margin-bottom:16px; height:450px;">
<img src="image/'. $row['product_image'] .'" alt="" class="img-responsive" >
<p align="center"><strong><a href="#">'. $row['product_name'] .'</a></strong></p>
<h4 style="text-align:center;" class="text-danger" >'. $row['product_price'] .'</h4>
<p>Camera : '. $row['product_camera'].' MP<br />
Brand : '. $row['product_brand'] .' <br />
RAM : '. $row['product_ram'] .' GB<br />
Storage : '. $row['product_storage'] .' GB </p>
</div>
</div>
';
}
}
else
{
$output = '<h3>No Data Found</h3>';
}
echo $output;
}
?>
</html>
<?php
//index.php
include('BD_Connect.php');
?>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Product filter in php</title>
<script src="jquery-1.10.2.min.js"></script>
<script src="jquery-ui.js"></script>
<script src="bootstrap.min.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link href = "css/jquery-ui.css" rel = "stylesheet">
<!-- Custom CSS -->
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<!-- Page Content -->
<div class="container">
<div class="row">
<br />
<h2 align="center">Ajax Product Filters in PHP</h2>
<br />
<div class="col-md-3">
<div class="list-group">
<h3>Price</h3>
<input type="hidden" id="hidden_minimum_price" value="0" />
<input type="hidden" id="hidden_maximum_price" value="1500" />
<p id="price_show">50 - 1500</p>
<div id="price_range"></div>
</div>
<div class="list-group">
<h3>Brand</h3>
<div style="height: 180px; overflow-y: auto; overflow-x: hidden;">
<?php
$query = "SELECT DISTINCT(product_brand),product_id FROM produto WHERE product_status = '1' ORDER BY product_id DESC;";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row)
{
?>
<div class="list-group-item checkbox">
<label><input type="checkbox" class="common_selector brand" value="<?php echo $row['product_brand']; ?>" > <?php echo $row['product_brand']; ?></label>
</div>
<?php
}
?>
</div>
</div>
<div class="list-group">
<h3>RAM</h3>
<?php
$query = "
SELECT DISTINCT(product_ram) FROM produto WHERE product_status = '1' ORDER BY product_ram DESC;
";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row)
{
?>
<div class="list-group-item checkbox">
<label><input type="checkbox" class="common_selector ram" value="<?php echo $row['product_ram']; ?>" > <?php echo $row['product_ram']; ?> GB</label>
</div>
<?php
}
?>
</div>
<div class="list-group">
<h3>Internal Storage</h3>
<?php
$query = "
SELECT DISTINCT(product_storage) FROM produto WHERE product_status = '1' ORDER BY product_storage DESC;
";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row)
{
?>
<div class="list-group-item checkbox">
<label><input type="checkbox" class="common_selector storage" value="<?php echo $row['product_storage']; ?>" > <?php echo $row['product_storage']; ?> GB</label>
</div>
<?php
}
?>
</div>
</div>
<div class="col-md-9">
<br />
<div class="row filter_data">
</div>
</div>
</div>
</div>
<style>
#loading
{
text-align:center;
background: url('loader.gif') no-repeat center;
height: 150px;
}
</style>
<script>
$(document).ready(function(){
filter_data();
function filter_data()
{
$('.filter_data').html('<div id="loading" style="" ></div>');
var action = 'fetch_data';
var minimum_price = $('#hidden_minimum_price').val();
var maximum_price = $('#hidden_maximum_price').val();
var brand = get_filter('brand');
var ram = get_filter('ram');
var storage = get_filter('storage');
$.ajax({
url:"fetch_data.php",
method:"POST",
data:{action:action, minimum_price:minimum_price, maximum_price:maximum_price, brand:brand, ram:ram, storage:storage},
success:function(data){
$('.filter_data').html(data);
}
});
}
function get_filter(class_name)
{
var filter = [];
$('.'+class_name+':checked').each(function(){
filter.push($(this).val());
});
return filter;
}
$('.common_selector').click(function(){
filter_data();
});
$('#price_range').slider({
range:true,
min:50,
max:1500,
values:[50, 1500],
step:10,
stop:function(event, ui)
{
$('#price_show').html(ui.values[0] + ' - ' + ui.values[1]);
$('#hidden_minimum_price').val(ui.values[0]);
$('#hidden_maximum_price').val(ui.values[1]);
filter_data();
}
});
});
</script>
</body>
</html>
<?php
//database_connection.php
$connect = new PDO("mysql:host=remotemysql.com;dbname=D6DVgw31iE", "D6DVgw31iE", "PQkTajbCkv");
?>
解决方案
推荐阅读
- python - 无法安装新版本的python
- arrays - 如何在 C 语言中找到数组中的一个值并将其复制到另一个数组中?
- spring-boot - 无法在 springboot 中使用 primefaces 作为 UI 加载索引页面
- date - 带有日期比较的 MDX 计算量度
- puppet - 将键附加到数组的顶部
- swift - 如果与给定的数字匹配,则将数组中的数字相乘
- python - 出现错误 ModuleNotFoundError:没有名为“rest_framework_sso”的模块
- javascript - 故事书可选道具力未定义
- google-apps-script - 检索 Google 脚本中的 Google Drive 帐户存储配额?
- python - 如何在xpath中获取元素的属性值