Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] autocomplete dla pola
Forum PHP.pl > Forum > Po stronie przeglądarki
waldemi
Witam
Z JQUERY mam już do czynienia od jakiegoś czasu ale teraz po raz pierwszy muszę zrobić autocomplete dla jednego pola. Szukałem w różnych tutorialach i na różnych forach, znalazłem kilka przykładów ale nie umiem ich przystosować do swoich wymagań.
Na stronie używam JQUERY oraz JQUERY UI. Potrzebuję zrobić podpowiedź do pola w których znajdują się nazwy gmin. Chciałbym aby w tym polu formularza wyświetlała się nazwa gminy i po przecinku nazwa powiatu. Gminy oraz powiaty znajdują się w bazie w osobnych tabelach - z tabeli "gminy" muszę pobrać ID oraz nazwę gminy, a z tabeli "powiaty" nazwę powiatu w którym ta gmina się znajduje. Po wybraniu inetresującej mnie gminy jej nazwa i powiat wyświetlają się w polu a do jakiegoś pola ukrytego musi być dodawany jej ID. To ID jest potrzebne do dalszego działania strony ponieważ po wysłaniu formularza na jego podstawie w kolejnej tabeli musi być dodane właśnie to ID.
W formularzu mam takie pola
  1. <input id="gmina_nazwa" type="text" value="" name="gmina_nazwa" size="40"/>
  2. <input id="gmina_id" type="hidden" value="" name="gmina_id"/>

Skrypt PHP wyszukuący gminy i powiaty z bazy
  1. $nazwa = $_GET['nazwa'];
  2. $gminy = array();
  3. $wynik = mysql_query ("SELECT gminy.gm_id, gminy.gm_nazwa, powiaty.pow_nazwa FROM gminy, powiaty WHERE gminy.gm_nazwa LIKE %$_GET['nazwa'] gminy.gm_powiat_id=powiaty.pow_id ORDER BY gminy.gm_nazwa;");
  4. while ($r = mysql_fetch_array ($wynik)){
  5. $gminy[] = array ($r[0], $r[1], $r[2]);
  6. }
  7. echo json_encode($gminy);

Skrypt JQUERY
  1. $(function(){
  2. $('#gmina_nazwa').autocomplete({
  3. source: function(request, response){
  4. $.ajax({
  5. url: 'includes/gminy.php',
  6. dataType: 'json',
  7. type: 'GET',
  8. data: {
  9. nazwa: $('#gmina_nazwa').val()
  10. },
  11. success: function (data){
  12. response( $.map( data, function(item){
  13. return{
  14. label: item.nazwa,
  15. value: item.id
  16. }
  17. }));
  18. }
  19. });
  20. },
  21. select: function( event, ui ) {
  22. $( "#gmina_nazwa" ).val( ui.item.label );
  23. $( "#gmina_id" ).val( ui.item.value );
  24. return false;
  25. }
  26. });
  27. });

Niestety nie mogę sobie poradzić z przystosowaniem tego do swoich potrzeb. Każda pomoc mile widziana. Nie chodzi mi o gotowca rozwiązanie ale o nakierowanie na właściwe rozwiązanie.
hubson87
Tu masz jakiś mój stary przykład na pobieranie miasta przy pomocy autocomplete może Ci coś pomoże.

JS

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. $("#miasto").autocomplete("ajax/miasto.php", {
  3. width: 135,
  4. matchContains: true,
  5. selectFirst: true
  6. });
[JAVASCRIPT] pobierz, plaintext


i plik ajaxowy

  1. <?php
  2.  
  3.  
  4.  
  5. $polacz=mysql_connect(".......");
  6. mysql_select_db(".......");
  7. mysql_query('SET NAMES utf8;');
  8.  
  9. $q = ($_GET["q"]);
  10. if (!$q) return;
  11.  
  12. $sql = "select nazwa as m from miasto where nazwa LIKE '$q%'";
  13. $rsd = mysql_query($sql);
  14. while($rs = mysql_fetch_array($rsd)) {
  15. $cname = $rs['m'];
  16. echo "$cname\n";
  17. }
  18.  
  19.  
  20. ?>
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.