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 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"; echo ' <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:
Pozdrawiam !