![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 24.05.2004 Skąd: krakow Ostrzeżenie: (10%) ![]() ![]() |
witam,
Przerabiam pewna aplikacje na ajax i dopiero zaczynam sie tego uczyc. Nie jestem pewny jak najprosciej i najlatwiej przetwarzac dane w ajax. Najlepiej byloby zebym robiac najmniej modyfikacji w kodzie mogl przerobic wszystko na ajax. Mam pytanie, jak wykonac mechanizm tego typu w ajax:
Chodzi mi przede wszystkim o to jak zrobic w ajax zeby odebrac dane podane w formularzu i wyslac je do tego samego skryptu PHP, a potem sprawdzic czy te dane zostaly wyslane no i jesli tak to zeby dzialanie skryptu przeszlo w odpowiednie miejsce, zeby wykonac zapytanie do bazy. W tym momencie mam to zrobione tak ze wysylam w formularzy pole <input name="mode_1" type="hidden" value="search_1" /> a potem gdy istnieje taka dana to wykonuje sie odpowiedni fragment kodu. Ktos moze pomoc? -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 288 Pomógł: 12 Dołączył: 2.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie potrafię wczuć się w ten problem, ale musisz po prostu wiedzieć, że AJAX to zwykłe wywoływanie stron, jednak tak jakby niewidoczne dla przeglądającego.
No więc możesz wysłać dane post i potem z tego samego linku odebrać jakieś dane. Te dane potem podmieniasz na stronie za pomocą innerHTML czy tam czegokolwiek chcesz. Nie ma tu wyższej filozofii. Pytasz jak pobrać dane z formularza. AJAX to zwykły JavaScript, także po prostu: var text = document.getElementById("pole_tekstowe").value; jeśli chcesz przesyłać przez get to używasz encodeURIComponent, jeśli przez post to ci nie pomogę, bo nie próbowałem. ![]() http://developer.mozilla.org/en/docs/AJAX:Getting_Started Poczytaj to, strasznie się przydaje. Więc dajmy na to gość wpisał w polu tekstowym swoje imie i nazwisko. [Jaś Fasola] podczas kliknięcia na button, czy co tam chcesz, wywołujesz funkcję, która wysyła to imię np. getURL("plik.php?name=" + encodeURIComponent(document.getElementById('pole_tekstowe').value)); No i potem w pliku.php obrabiasz te dane, wsadzasz do bazy i tak dalej. Jeśli się udało, to np. zwracasz tekst: ok <id> <imie_nazwisko> jeśli nie to: error <blad> No i potem znowu obrabiasz przez javascript i walisz na stronę poprzez podmianę divów (innerHTML) czy cokolwiek. Powodzenia, i zawsze myśl, że nic nie jest trudne, tylko tak wygląda. ![]() Przeczytaj to na mozilli, bo bardzo pomaga. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 12.04.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam
Na poczatek jesli zaczynasz zabawe z AJAX to sprobuj wykorzystac jakas gotowa biblioteke. Ja osobiscie polecam prototype. Jesli chodzi o problem, ktory przedstawiles to proponuje nastepujace rozwiazanie. Po pierwsze kazdy formularz oddziel do osobnego pliku. Tak aby byl jakis div w nim form i tyle. Nastepnie na stronie gdzie ma sie wyswietlac formularz wstaw kolejnego div nazwij sobie go np. form_area. Plik z formularzem mozesz poprostu includowac. Teraz musisz zrobic na formularzu jakas akcje podczas submitowania. Proponuje wykorzystac Ajax.Updater z prototype. Wywolac go onsubmit. Robi on tyle ze do elementu html o podanym id wstawia to co mu zwroci adres, ktory mu przekazemy. W naszym przypadku bedzie to adres pliku, ktory ma sprawdzic poprawnosc danych formularza. Jesli walidacja sie nie powiodla to wyswietlamy ponownie formularz. Wtedy Ajax.Updater wstawi go w to samo miejsce czyli zrobi innerHtml na form_area. Mozna w ten sposob wyswietlac automatycznie bledy. Jesli walidacja sie powiedzie mozna wyswietlic inny widok, np. komunikat potwierdzajacy udana akcje. Pozdrawiam -------------------- "What you are talking to me about what"
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 24.05.2004 Skąd: krakow Ostrzeżenie: (10%) ![]() ![]() |
dzieki Chlopaki, pomogliscie. zrobilem to poprzez advAJAX. teraz mam kolejne pytanie, wczesniej mi dzialala funkcja napisana w JS, ktora walidowala poprawnosc danych wpisanych do formularza - jesli byly nie poprawne to nie dalo sie wyslac formularza, teraz moj formularz wyglada tak:
no i wlasnie to: onsubmit="return valid_data();" obsluguje walidacje formularza, rozumiem, ze trzeba jakos zmodyfikowac wywolanie tej funkcji pod ajax, tylko jak? chce zeby nie wysylal sie formularz jesli dane w polach nie spelniaja wymagan funkcji valid_data() -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 15.07.2004 Ostrzeżenie: (0%) ![]() ![]() |
No ale moment albo na przycisku masz submit i onclick i dalej f-cja ktora robi validacje, a jesli sie udala to inicjowana jest akcja ajax'a albo masz onsubmit a przycisk to zwykly <input type="image".... /> i return zwraca Ci false jesli validacja sie nie powiodla, albo true i wykonuje sie f-cja ajax'owa.
Pozdr. MS -------------------- Apache 2.0.52 - PHP 5.0.2 - MySQL 4.0.21
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 22:51 |