![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 9 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki mały problem, a mianowicie chodzi o autouzupełnianie formularza. Przykład: Po wpisaniu w pierwszym input imienia i nazwiska ma uzupełniać pozostałe input i textarea o adres, email, telefon itp. Wszystko jest zapisane w bazie mysql. Jest jakiś dobry sposób na ten problem? Czytałem o autocomplete ale nie wiem jak połączyć to z bazą mysql i rozwiązanie tego zajmnie mi trochę czasu (powoli to rozgryzę) jeśli nie ma innego rozwiązania to będę kombinował z tym autocomplete. Najprostrzym rozwiązaniem byłoby zrobienie jednego formularza z polem imie i nazwisko i przejscie do drugiej strony z weryfikacja danych, jesli taki koles istnieje w bazie to uzupelnia a jesli nie to zostaje puste, to umiem zrobić. Tylko chciałbym bez odswieżania strony. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 20 Dołączył: 8.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym tutaj wykorzystał JavaScript + Ajax. Przykładowy kod:
JSON to po prostu sposob zapisu informacji, alternatywnie moglbys uzyc XML albo nawet zwyczajnie wypisac tekst uzywajac np przecinka do jego odgradzania, a w skrypcie js uzyc split do rozdzielenia. Osobiscie preferuje jsona. PDO to obiektowa biblioteka do komunikacji ze SQL, jezeli jej nie znasz mozesz uzyc zamiast new, mysqlconnect; $pdo->query, mysql_query; $stmt->fetch, mysql_fetch_row itd... Mam nadzieje w kazdym razie ze o to ci chodzilo Ten post edytował tab 1.12.2012, 02:03:29 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
A pomyślałeś o sytuacji gdy jest więcej osób o takim samym imieniu i nazwisku? Nie wiem jakie zastosowanie ma Twój skrypt, ale co w przypadku gdy ktoś na chybił trafił zacznie wpisywać imiona i nazwiska i mu dane wyskoczą? Takie jawne przekazywanie danych osobowych jest niezgodne z prawem.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 9 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Teraz muszę rozgryźć ten kodzik i przetestuje.
Dzięki wielkie. A pomyślałeś o sytuacji gdy jest więcej osób o takim samym imieniu i nazwisku? Nie wiem jakie zastosowanie ma Twój skrypt, ale co w przypadku gdy ktoś na chybił trafił zacznie wpisywać imiona i nazwiska i mu dane wyskoczą? Takie jawne przekazywanie danych osobowych jest niezgodne z prawem. To będzie system zamknięty i nie będą miały dostępu asoby trzecie więc myślę, że nie będzie problemu. Coś tu nie chodzi jak powinno, proszę o sprawdzenie czy dobrze to robię:
w js zmienilem to: Kod $('#adres').val(json['adres']); $('#telefon').val(json['telefon']); Po wpisywaniu w pierwszym input name, wyskakują jakieś dziwne dane, nazwy odwiedzanych stron www, zakładki które mam otwarte itp. Nie wypełnia następnych pól automatycznie. Co tu może być zle? Ten post edytował webspy 1.12.2012, 10:43:23 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 20 Dołączył: 8.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
PDO ciezko mi powiedziec ,bo zalezy od twojego hostingu. Np. ja w host daje localhost, w db nazwe bazy ktora jest moja nazwa uzytkownika, w login tez nazwe uzytkownika, w haslo wiadomo. Ale jak ci zadne blad mysql nie wyskakuje to mysle ze tu nie ma problemu. Upewnij sie ze jak zmieniles email na adres i phone na telefon to wprowadziles zmiany wszedzie. Poza tym jaka strukture ma twoja tabela z ktorej pobierasz dane? Istnieje jeszcze mozliwosc ze to problem ze spacja lub polskimi znakami. Sprobuj zrobic test wpisujac w bazie danych rekordy bez polskich znakow i spacji i potem w inpucie sprawdzic czy wszystko bedzie dobrze chodzic. Poza tym otworz konsole (F12) i powiedz czy wywala ci jakies informacje. I moze zamien jeszcze:
zeby sprawdzic co w ogole zawiera json Ten post edytował tab 1.12.2012, 11:00:50 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 38 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Skrypt powinien wyglądać następująco:
- pobierasz wszystkie interesujace Cie dane osoby: imię, nazwisko, telefon, adres itp: i tworzysz sobie z tego tablicę PHP - robisz z tych danych JSON'a, którego zwracasz do skryptu autocomplet'a (zakładam, że będziesz używał jQuery UI Autocomplete) - jQuery ui autocomplete domyślnie jako wartość pola formularza wstawia element jsona o kluczu 'id', a jako tekst element o kluczu chyba 'value' (czy może 'label'?). - w pluginie autocomplet'a piszesz własną obsługę na zdarzenie 'onSelect', i tam możesz sobie wypełnić interesujące Cię pola, czyli coś w stylu
Także nie ma sensu pisać oddzielnego skryptu js do wypełniania tych danych, skoro można wszystko załatwić korzystając z autocomplete i będzie działało to o wiele lepiej. Cytat To będzie system zamknięty i nie będą miały dostępu asoby trzecie więc myślę, że nie będzie problemu. Ale przecież ciągle pozostaje problem istnienia osób o tym samym imieniu i nazwisku... W autocomplete wybierasz konkretną osobę z listy podpowiedzi i dzięki temu wiesz dokładnie czyje dane z bazy pobierasz do formularza. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 9 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dobra wykombinowalem takie coś:
Kod <script type="text/javascript"> $(document).ready(function(){ var ac_config = { source: "baza.php", select: function(event, ui){ $("#personalia").val(ui.item.personalia); $("#adres").val(ui.item.adres); $("#telefon").val(ui.item.telefon); return false; }, minLength:1 }; $("#personalia").autocomplete(ac_config); }); </script> W pliku baza wyswietla wszsytkie dane w formie JSON - sprawdzalem Jak zrobić aby szykało tylko jednego wyniku? co dodać do script a co do php (pewnie jakiś get)
Nie wyświetla żadnego wyniku po wpisywaniu w input, pole robi się jakby aktywne jakby miało się coś wyświetlać ale nic nie wyświetla. Proszę o pomoc już przeczytałem chyba setki stron z tym problemem. Może mam złe pliki js?
Czy to wystarczy czy trzeba coś więcej? Wyswietla juz wyniki, lecz zostal problem: nie uzupelnia reszty input'ow Ściągnąłem demo i wychodzi na to że już pokazują się wyniki tylko że z błędem (IMG:http://webspy.strefa.pl/temp/autocomplete.jpg) Co może być spowodowane takim wyświetlaniem wyniku? Ten błąd pokazuje się tylko przy wpisaniu pierwszej litery jak już wpiszę drugą to wyświetla prawidłowo. Ten post edytował webspy 9.12.2012, 20:14:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 01:44 |