Witam serdecznie,
zrobiłem takie oto filtrowanie:
http://iam4u-server.home.pl/sklep/filter.php aczkolwiek nie działa to w taki sposób w jaki sobie to założyłem...
Pokazuje mi ładnie wysortowane wyniki z bazy, ale nie pamięta wszystkich wartości filtrowania, dla przykładu:
jeżeli wybiorę kolor np czerwony oraz smak np wytrawne, to wyszukuje mi wyłącznie rekordy z wartością "wytrawne", a kolor jest pomijany.
Wiem, że jest wina w skrypcie jQuery, ponieważ ręcznie wpisane wartości w skrypcie PHP działają poprawnie.
Ad1. Macie jakieś rady ?
Ad2. Ponadto chciałbym prosić o wyjaśnienie w jaki sposób wysłać wyniki sortowania z pliku function.php do pliku index.php ?
JS:
$(window).load(function() {
$(".filtr").click(function() {
var kolor = $(this).find('div.k').add('id');
var smak = $(this).find('div.s').attr('id');
var cena = $(this).find('div.c').attr('id');
var region = $(this).find('div.r').attr('id');
var kraj = $(this).find('div.p').attr('id');
$.ajax({
url: 'function.php',
data: {
funkcja: 'szukaj',
kolor: kolor,
smak: smak,
cena: cena,
region: region,
kraj: kraj,
},
type: 'post',
success: function(output) {
$('.jo').remove();
$("#wyniki").append(output);
return false;
}
});
});
});
PHP:
// Ajaxowe wyszukiwanie win
if(isset($_POST['funkcja']) && !empty($_POST['funkcja'])) { switch($_POST['funkcja'])
{
case 'szukaj':
szukaj($_POST['kolor'], $_POST['smak'], $_POST['cena'], $_POST['region'], $_POST['kraj']);
break;
}
}
function szukaj($kolor, $smak, $cena, $region, $kraj) {
$qwerty = "SELECT * FROM `wina` WHERE
kolor LIKE '%".$kolor."%'
AND smak LIKE '%".$smak."%'
AND cena_handlowa LIKE '%".$cena."%'
AND region LIKE '%".$region."%'
AND kraj LIKE '%".$kraj."%'
ORDER by id";
<div class="jo" style="background: #aaa; margin-bottom: 5px;">
'.$id['id'].' |
'.$id['nazwa'].' |
'.$id['region'].' |
'.$id['kraj'].' |
'.$id['smak'].' |
'.$id['kolor'].' |
'.$id['cena_handlowa'].' |
'.$id['zdj_mini'].' |
'.$id['zdj_duze'].'
</div>
';
}
}
HTML:
<div class="filtr"><div class="k" id="cze"><img src="images/wina-i.png" /> Czerwone
</div></div> <div class="filtr"><div class="k" id="bia"><img src="images/wina-i.png" /> Białe
</div></div> <div class="filtr"><div class="k" id="roz"><img src="images/wina-i.png" /> Różowe
</div></div> <div class="filtr"><div class="c" id="1"><img src="images/wina-i.png" /> do 50zł
</div></div> <div class="filtr"><div class="c" id="2"><img src="images/wina-i.png" /> 50zł - 100zł
</div></div> <div class="filtr"><div class="c" id="3"><img src="images/wina-i.png" /> ponad 100zł
</div></div> <div class="filtr"><div class="s" id="slo"><img src="images/wina-i.png" /> Słodkie
</div></div> <div class="filtr"><div class="s" id="wyt"><img src="images/wina-i.png" /> Wytrawne
</div></div> <div class="filtr"><div class="s" id="mus"><img src="images/wina-i.png" /> Musujące
</div></div> <div id="filtr-kontynent"> <div class="filtr ameryka"><div class="r" id="ame"><img src="images/wina-i.png" /> Ameryka
</div></div> <div class="filtr europa"><div class="r" id="eur"><img src="images/wina-i.png" /> Europa
</div></div> <div class="filtr ameryka"><div class="p" id="arg"><img src="images/wina-i.png" /> Argentyna
</div></div> <div class="filtr ameryka"><div class="p" id="chi"><img src="images/wina-i.png" /> Chile
</div></div> <div class="filtr ameryka"><div class="p" id="bra"><img src="images/wina-i.png" /> Brazylia
</div></div>
<div class="filtr europa"><div class="p" id="fra"><img src="images/wina-i.png" /> Francja
</div></div> <div class="filtr europa"><div class="p" id="wlo"><img src="images/wina-i.png" /> Włochy
</div></div> <div class="filtr europa"><div class="p" id="his"><img src="images/wina-i.png" /> Hiszpania
</div></div> <div id="filtr-result">Znaleziono wyników:
<b>4178
</b></div>
<div id="wyniki" style="clear: both; float: none;"></div>
Pozdrawiam !