우리는 기업 (사용자)가 자신의 제품을 업로드하고 브랜드, 색상, 재질과 같은 사양을 삽입하는 웹 사이트를 운영합니다.
방문자가 관광 제품을 찾고자 할 때 브랜드, 색상, 재료처럼 삽입하기 전에 기업 (사용자)이 선택하는 확인란을 선택할 수 있습니다. 확인란의PHP 필터링 MySQL의 곱하기 확인란
모든 결과는
지금 우리가 여기에 문제가 아약스
function getEmployeeFilterOptions() {
var opts = [];
$checkboxes.each(function() {
if (this.checked) {
opts.push(this.value);
}
});
return opts;
}
function updateEmployees(opts) {
$.ajax({
type: "POST",
url: "ajax/filterProducts.php",
data: {
filterOpts: opts, catIDp2:<?php echo $_GET['catIDp']; ?>
},
success: function (records) {
$('#response').html(records);
}
})
;
}
var $checkboxes = $("input:checkbox");
$checkboxes.on("change", function() {
var opts = getEmployeeFilterOptions();
updateEmployees(opts);
});
을 함께 보여, 체크 박스는 예를 들어 우리는 모바일 용 3 확인란이 불완전 일 :
1.brands을 : 삼성, LG, 애플
2.color : 레드, 블루,
녹색 3.material : 플라스틱, 금속, 유리
삼성 (브랜드)와 레드 (컬러)의 체크 박스에 방문자의 클릭 결과를 보여이어야합니다 빨간색 삼성의.
하지만 우리의 주요 문제는 방문자가 결과를 표시하기 위해 모든 확인란 (빨간색, 금속, 삼성)을 클릭해야한다는 것입니다.
그래서 방문자가 클릭 한 결과 만 표시하면 모든 확인란을 채울 필요가 없습니다.
우리의 PHP 코드는 여기에 있습니다 :
function getFilterProducts($cat, $filter = null){
global $db;
$result = '';
$sql = '';
if (count($filter) == 1) {
if ($filter != null) {
$val = implode("','", $filter);
$sql = "SELECT productID_C,subCatID_Product,title_Product_C,status,url_seo_product,priceStatus_C,priceProduct_C,backgroundUrlPrd_C,create_date_product,priceProduct_C,countryProductFarsi_C,brandNameFarsi_Product_C,companyID,genreProductFarsi_C,colorProductFarsi_C
FROM $db->products_company WHERE (countryProductFarsi_C IN ('$val') AND subCatID_Product='$cat') OR (brandNameFarsi_Product_C IN ('$val') AND subCatID_Product='$cat') OR (companyID IN ('$val') AND subCatID_Product='$cat') OR (genreProductFarsi_C IN ('$val') AND subCatID_Product='$cat') OR (colorProductFarsi_C IN ('$val') AND subCatID_Product='$cat') ORDER BY create_date_product DESC";
$result = $db->query($sql);
}
} elseif (count($filter) >= 2) {
if ($filter != null) {
$val = implode("','", $filter);
$sql = "SELECT productID_C,subCatID_Product,title_Product_C,status,url_seo_product,priceStatus_C,priceProduct_C,backgroundUrlPrd_C,create_date_product,priceProduct_C,countryProductFarsi_C,brandNameFarsi_Product_C,companyID,genreProductFarsi_C,colorProductFarsi_C
FROM $db->products_company WHERE subCatID_Product='$cat' AND countryProductFarsi_C IN ('$val') AND brandNameFarsi_Product_C IN ('$val') AND companyID IN ('$val') AND genreProductFarsi_C IN ('$val') AND (colorProductFarsi_C IN ('$val')) ORDER BY create_date_product DESC";
$result = $db->query($sql);
}
} else {
$sql = "SELECT productID_C,subCatID_Product,title_Product_C,status,url_seo_product,priceStatus_C,priceProduct_C,backgroundUrlPrd_C,create_date_product,priceProduct_C,countryProductFarsi_C
FROM $db->products_company WHERE subCatID_Product='$cat' ORDER BY create_date_product DESC";
$result = $db->query($sql);
}
if ($result) {
$listFilterPrd = $result->fetch_all(MYSQLI_ASSOC);
return $listFilterPrd;
}
return null;}
마지막으로 우리가 제대로 amazon.com이나 ebay.com 우리는이 문제를 해결할 수있는 방법
처럼 작동 상자를 확인하려면?
This image is our product check boxes
감사합니다.
모든 체크 상자 조합에 대해 생성하는 SQL 문자열을 비교 했습니까? 그러나 1,2 OR 3 체크 박스가 선택되도록 허용하는 경우 왜 두 가지 조건 만 처리합니까? 1 개의 체크 박스와 2 개 이상의 체크 박스가 있습니다. –
http://codepen.io/desandro/pen/GFbAs – Strawberry
브랜드, 색상, 소재 등 모든 확인란에이 조건을 어떻게 처리 할 수 있습니까? @ 마르크 B –