Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL, PHP, JAVASCRIPT] Autouzupełnianie kilku pół formularza.
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
fiskusmati
Witam. Mam bazę danych opartą o MYSQL, oraz serwer Apache (Wszystko stoi pod kontrolą XAMPP'a).
Formularz w pliku form.php przykładowo składa się z następujących pół:
Nazwa firmy:
Adres (ulica):
Adres (miasto):


Zależy mi na tym, aby przy wpisywaniu nazwy firmy skrypt pobierał dane nazwy firmy z bazy danych, czyli przykładowo użytkownik wpisuje "NE" i w podpowidzi dostaje np. NET-SYS, NETIA, NEW-ELECTRIC. Oczywiście te dane będą pobrane z bazy bo w przeszłości użytkownik dodał takie firmy do bazy uzupełniając formularz. Użytkownik wybiera np. "NETIA" i reszta formularza (Adres ulica, Adres miasto) uzupełniają się same pobierając dane z bazy danych (z dowolnego rekordu który zawierał NETIA jako nazwa firmy.

Póki co udało mi się zaaplikować skrypt który "auto-uzupełnia" Nazwę firmy, ale co z Adresami?

Za każdą pomoc jestem wdzięczny, jednak ze względu na to iż z javą nie miałem nic wspólnego do tej pory, miło było by zobaczyć jakieś działające przykłady.


Pozdrawiam, Mateusz.
markonix
Czym się różni logika podpowiedzi przy nazwie firmy, a ulicy firmy?
Na czym stanąłeś.

Javascript to nie nie java.
fiskusmati
Użytkownik ma uzyskać podpowiedź tylko dla nazwy firmy. Po kliknięciu (wybraniu) odpowiedniej, pola adresu firmy uzupełniają się same.

Póki co, korzystając z gotowego skryptu mam nawet problem z zaciąganiem samej nazwy firmy, ponieważ kiedy w bazie znajduje się wiele rekordów o nazwie firmy np. "PASJO.TEL Sp. z o.o.", to w podpowiedziach dostaję coś takiego:

markonix
Aaa..

Podpinasz pod odpowiedni event ustawienie wartości.

  1. select: function( event, ui ) {
  2. $("#address").val( ui.item.address);
  3. },


Baza zwraca to o co prosisz. Skoro pobierasz wszystkie firmy zaczynające się na "PAS" to takie zwraca Ci.
Skoro chcesz tylko wartości unikalne logicznym krokiem byłoby poszukanie w Google informacji o pobieraniu unikalnych wartości (DISTINCT).
fiskusmati
Super, z DISTINCT poradziłem sobie bez problemu i działa tak jak powinno.
Dziękuje.

Zaraz spróbuję powalczyć z javascript.

Jeśli możesz podpowiedz co tutaj zmienić, gdzie jest ten event o który mi chodzi (przepraszam, po prostu jeśli chodzi o javascript jestem kompletnym laikiem).
Załączam mój plik java script:
[JAVASCRIPT] pobierz, plaintext
  1. var MIN_LENGTH = 2;
  2.  
  3. $( document ).ready(function() {
  4. $("#keyword").keyup(function() {
  5. var keyword = $("#keyword").val();
  6. if (keyword.length >= MIN_LENGTH) {
  7.  
  8. $.get( "auto-complete.php", { keyword: keyword } )
  9. .done(function( data ) {
  10. $('#results').html('');
  11. var results = jQuery.parseJSON(data);
  12. $(results).each(function(key, value) {
  13. $('#results').append('<div class="item">' + value + '</div>');
  14. })
  15.  
  16. $('.item').click(function() {
  17. var text = $(this).html();
  18. $('#keyword').val(text);
  19. })
  20.  
  21. });
  22. } else {
  23. $('#results').html('');
  24. }
  25. });
  26.  
  27. $("#keyword").blur(function(){
  28. $("#results").fadeOut(500);
  29. })
  30. .focus(function() {
  31. $("#results").show();
  32. });
  33.  
  34. });
  35.  
[JAVASCRIPT] pobierz, plaintext


Udało mi się ustawić wartośc pola id1, po wybraniu odpowiedniej pozycji.
teraz zamiast text to be displayed potrzebuje tam wsadzić zmienną z innego pliku (php). Jak to zrobić?

[JAVASCRIPT] pobierz, plaintext
  1. $('.item').click(function() {
  2. var text = $(this).html();
  3. $('#keyword').val(text);
  4. document.getElementById('id1').value='text to be displayed';
[JAVASCRIPT] pobierz, plaintext


Prawdopodobnie powinienem zrobić jakąś funkcję? Tak aby z javascriptu była wysyłana zmienna text (czyli to co zostało wybrane przez użytkownika z listy sugestii), potem w pliku php musiało by to być załadowane do zapytania sql, a wynikiem funkcji był by adres firmy.

Tylko jak to zrobić? Szukam i szukam, ale nic nie działa tak jak powinno.
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.