Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX][SQL] Zależne pole select z bazy
Forum PHP.pl > Forum > Przedszkole
pikasso
Witam wszystkich,
mam taki o to problem chciałbym rozbudować sobie skrpt ze strony appelsiini.net/projects/chained

Jak to przekształcić aby zapytania były z bazy?? o ile pierwszy i drugi select potrafię zrobić to 3 mi nie wychdzi ...


  1. <select id="mark" name="mark">
  2. <option value="">--</option>
  3. <option value="bmw">BMW</option>
  4. <option value="audi">Audi</option>
  5. <select id="series" name="series">
  6. <option value="">--</option>
  7. <option value="series-3" class="bmw">3 series</option>
  8. <option value="series-5" class="bmw">5 series</option>
  9. <option value="series-6" class="bmw">6 series</option>
  10. <option value="a3" class="audi">A3</option>
  11. <option value="a4" class="audi">A4</option>
  12. <option value="a5" class="audi">A5</option>
  13. <select id="model" name="model">
  14. <option value="">--</option>
  15. <option value="coupe" class="series-3 series-6 a5">Coupe</option>
  16. <option value="cabrio" class="series-3 series-6 a3 a5">Cabrio</option>
  17. <option value="sedan" class="series-3 series-5 a3 a4">Sedan</option>
  18. <option value="sportback" class="a3 a5">Sportback</option>
  19.  
  20. </script> <script charset=utf-8>
  21. $(function(){
  22. $("#series").chained("#mark");
  23. $("#model").chained("#series");
  24. $("#engine").chained("#series, #model");
  25. });
  26. </script>
  27.  


Mój przerobiony skrypt

  1.  
  2. <select id="mark" name="mark">
  3. <option value="">--</option>
  4. <?php
  5. mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`");
  6. $PokazPozycje = mysql_query("SELECT DISTINCT Marka FROM Samochody WHERE Rodzaj = 'Osobowe';");
  7. while($PokazPozycjeTable = mysql_fetch_assoc($PokazPozycje)) { ?>
  8. <option value="<?php echo $PokazPozycjeTable['Marka'] ?>"><?php echo $PokazPozycjeTable['Marka'] ?></option>
  9. <?php }?>
  10. </select>
  11.  
  12. <select id="series" name="series">
  13. <option value="">--</option>
  14. <?php
  15. mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`");
  16. $PokazPozycje1 = mysql_query("SELECT DISTINCT Model, Marka FROM Samochody WHERE Rodzaj = 'Osobowe';");
  17. while($PokazPozycjeTable1 = mysql_fetch_assoc($PokazPozycje1)) { ?>
  18. <option value="<?php echo $PokazPozycjeTable1['Model'] ?>" class="<?php echo $PokazPozycjeTable1['Marka'] ?> <?php echo $PokazPozycjeTable1['Model'] ?>?>"><?php echo $PokazPozycjeTable1['Opis'] ?></option>
  19.  
  20. <?php
  21. }?>
  22. </select>
  23. <select id="model" name="model">
  24. <option value="">--</option>
  25. <!-- Jak dalej to napisać aby wybierać teraz model bo np. każda marka ma sedan lub kombi lub inny?? ale żeby to było zależne od $PokazPozycjeTable1['Model'] -->
  26. </select>
  27. <select id="engine" name="engine">
  28. <option value="">--</option>
  29. <!-- Jak dalej to napisać aby wybierać teraz rok w zależności jeżeli wszystko jest wybrane z powyższych - jak przekazać do selecta pola Model / Marka / Rodzaj -->
  30. </select>
  31. <script charset=utf-8>
  32. $(function(){
  33. $("#series").chained("#mark");
  34. $("#model").chained("#series");
  35. $("#engine").chained("#series, #model");
  36. });
  37. </script>
  38.  
pikasso
Ok dzięki
a jak teraz do tego mogę podpiąć 3 selecta??

  1. <form action="" method="post" id="formularz">
  2. <label for="marka">Wybierz markę</label>
  3. <select id="marki" name="marka">
  4. <option>Wybierz</option>
  5. <?php foreach($marki as $v): ?>
  6. <option><?php echo $v['Grupa']; ?></option>
  7. <?php endforeach; ?>
  8. </select>
  9. <label for="model">Wybierz model</label>
  10. <select id="modele" name="model">
  11. </select>
  12.  
  13. <label for="ilosc">Wybierz model</label>
  14. <select id="ilosci" name="model">
  15. </select>
  16. <input type="submit" value="Ok">
  17. </form>



Pierwszy select wywoływany jest z tego skryptu

  1. $('#marki').on('change', function(){
  2. var marka = $(this).val();
  3. $.ajax({
  4. type: 'POST',
  5. url: 'szukaj.php',
  6. data: { 'marka':marka },
  7. success: function(msg){
  8. $("#modele").html(msg);
  9. }
  10. })
  11. })


To drugi powinien być analogicznie robiony? tak??

  1. $('#modele').on('change', function(){
  2. var modele = $(this).val();
  3. $.ajax({
  4. type: 'POST',
  5. url: 'szukaj2.php',
  6. data: { 'modele':modele },
  7. success: function(msg){
  8. $("#ilosci").html(msg);
  9. }
  10. })
  11. })


Ok problem rozwiązany smile.gif
dawałęm złe zapytanie do bazy
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.