Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wyszukiwarka w sklepie
Forum PHP.pl > Forum > Przedszkole
Krismen
Załóżmy, że mamy sklep i wchodzimy na kategorię telewizory i mamy dodatkowe kryteria wyszukiwania.

  1. $tab_wyszukiwarka['marka']=array(1=>"LG",2=>"Philips",3=>"Samsung");
  2. $tab_wyszukiwarka['typ']=array(4=>"LCD",5=>"LED",6=>"QLED");
  3. $tab_wyszukiwarka['rozdzielczosc']=array(7=>"1920x1080",8=>"1366x768");


  1. <form action="" method="GET">
  2. <?php
  3. foreach($tab_wyszukiwarka as $key => $val){?>
  4.  
  5. <p><?php echo $key;?></p>
  6. <div class='one' style="border:1px solid red">
  7. <?php
  8. foreach($val as $key1 => $val1){
  9. if($get==$key1){
  10. $zaznacz="checked='checked'";
  11. }
  12.  
  13. else{
  14. $zaznacz="";
  15. }
  16. ?>
  17. <div><input type="checkbox" <?php echo $zaznacz;?> onchange="window.location.href='<?php echo $_SERVER['PHP_SELF'];?>?<?php echo $key;?>=<?php echo $key1;?>'" /></div>
  18. <div><?php echo $val1;?></div>
  19. <?php
  20. }
  21.  
  22. ?>
  23. </div>
  24.  
  25. <?php
  26. }
  27. ?>
  28.  
  29. </form>


Klikamy w któryś checkbox i mam przyporządkowaną mu zmienną get i dany checkbox jest już zaznaczony. Ale jak teraz zrobić aby przy każdym kolejnym kliknięciu te zmienne get dołączały się o siebie. Bo teraz mam tak, że jak zaznaczę drugi checkbox to pierwszy się odznacza. Czy może lepiej takie coś powinno robić się ajaxem bez przeładowania strony?
nospor
Klikajac na checkbox nie masz robic zadnego window.location.href tylko normalnie wysylac formularz. Wtedy zadne dane z formularza ci nie znikna
Krismen
Ale ja nie mam w tym formularzu submita, bo chcę żeby po każdym kliknięciu w checkbox już pokazały się na stronie odpowiednie telewizory. Np. klikam w markę PHILIP i już jest przeładowanie i zapytaniem pobieram PHILIPSY. Klikam w kolejny chekbox i wczytują mi się PHILIPSY o rodzielczości 1920x1080, itd.
nospor
A czy ja ci kazalem klikac SUBMIT? Tak jak teraz przy pomocy JS przeladowujesz strone, tak ja ci mowilem bys przy pomocy JS wyslal formularz

Cytat
Czy może lepiej takie coś powinno robić się ajaxem bez przeładowania strony?
Docelowo tak. Nie mniej jednak powininies tak czy siak miec mechanizm ktory wczyta filtry z URL np. jak ktos chce komus przeslac link z wyszukiwaniem albo samemu sobie by zapamietac
Krismen
Dzięki nospor, trochę już wiem więcej. I teraz mam tak

  1. <form action="" id="formularz" method="GET">
  2. <?php
  3.  
  4. foreach($tab_wyszukiwarka as $key => $val){?>
  5.  
  6. <p><?php echo $key;?></p>
  7. <div class='one' style="border:1px solid red">
  8. <?php
  9. foreach($val as $key1 => $val1){
  10. if(($_GET[$key])==$key1){//numerek
  11. $zaznacz="checked='checked'";
  12. }
  13.  
  14. else{
  15. $zaznacz="";
  16. }
  17. ?>
  18. <div><input id="<?php echo $key;?>" name="<?php echo $key;?>" type="checkbox" value="<?php echo $key1;?>" <?php echo $zaznacz;?> onChange="this.form.submit()" /></div>
  19. <div><?php echo $val1;?></div>
  20. <?php
  21. }
  22.  
  23. ?>
  24. </div>
  25.  
  26. <?php
  27. }
  28.  
  29. ?>
  30.  
  31. </form>


I mogę zaznaczyć tylko po jednym checkboksie w danej kategorii. Jeśli np. w kategorii marka zaznacze drugi checkbok to już się nie dołącza. Co jeszcze muszę poprawić?

tu można to zobaczyć
tutaj
nospor
Jak chcesz by cos sie wysylalo grupa to nazwa ma miec nazwe tablicowa czyli z []
czyli nie np.

name="costam"
tylko
name="costam[]"

Wowczas formularz wysle to jako tablice pod indexem costam i jako tablice masz to odbierac
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.