Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jquery] autocomplete dla pola
waldemi
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 5.03.2007
Skąd: Leszno

Ostrzeżenie: (0%)
-----


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.

Ten post edytował waldemi 22.03.2013, 23:30:41
Go to the top of the page
+Quote Post
hubson87
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 8
Dołączył: 9.02.2011
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 05:06