Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [advAJAX][php] Jak wyslac formularz przy pomocy advAjAXA, metoda POST
puz219
post 29.01.2008, 20:23:03
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


Witam.

Zaczynam właśnie swoją przygodę z AJAXEM i próbuję przesłać dane z formularza, lecz nie wiem co dopisać w funkcji wysyłającej dane, żeby wysłać dane do pliku search.php metodą POST.

Oto co wykombinowałem:
  1. <form id="search_form">
  2. <input type="hidden" name="sid" id="sid" value="<?php echo SendID($_id); ?>" />
  3. <input type="text" name="q" id="search_form" size="50" />
  4. <select name="what" id="what">
  5. <option value="1">osoba</option>
  6. <option value="2">miejscowość</option>
  7. <option value="3">kraj</option>
  8. </select>&nbsp;<input type="button" value="Wyszukaj" onclick="get_search()">
  9. </form>


A to skrypt funkcji get_search()
  1. <?php
  2. <script type="text/javascript">
  3. function get_search()
  4. {
  5. advAJAX.submit(document.getElementById("search_form"), {
  6. onInitialization : function() { document.getElementById("search_results").innerHTML = "<img src=\"images/loading.gif\">"; },
  7. onSuccess : function(obj) { document.getElementById("search_results").innerHTML = obj.responseText },
  8. onError : function(obj) { alert("Error: " + obj.status); }
  9.  
  10. };
  11. }
  12. </script>
  13. ?>


Oczywiście dałem na początku (w META)
  1. <script type="text/javascript" src="advajax.js"></script>


Problem polega na tym, że chcialbym, żeby formularz był przesyłany do pliku search.php metodą post i wyświetlony w divie id="search_results".

Nie wiem, co i jak dopisać do funkcji get_search(), żeby osiągnąć upragniony efekt.

Bardzo prosiłbym o pomoc, z góry dzięki.

Pozdrawiam.

P.S. Szukałem oczywiście odpowiedzi na ten temat, ale nic przydatnego nie znalazłem, szukałem głónie na stronie advajaxa, ale tamtejszy manual jest ubogi, pytałem też google, ale nic sensownego mi nie odpowiedział.

Ten post edytował puz219 29.01.2008, 20:04:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
arecki
post 29.01.2008, 20:44:34
Post #2





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


Pierwsze primo: do tagu <form> dodaj method="post" i będzie działało przez POST smile.gif
Drugie primo: brakuje zamknięcia nawiasu wywołania funkcji advAJAX.submit() (gdzie ? jako zadanie domowe polecam znaleźć samemu smile.gif)
Trzecie primo: A skąd AJAX ma wiedzieć gdzie ma wysłać dane ? Może by tak action w <form> też ustawić ?
Czwarte primo: manual na stronie Anakina jest w porządku. Raczej trzeba sobie podstawy formularzy przypomnieć smile.gif


--------------------
Go to the top of the page
+Quote Post
puz219
post 29.01.2008, 20:55:05
Post #3





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


No dobra dodałem method i action do forma
  1. <form id="search_form" method="POST" action="search.php">

domknąłem nawias
  1. <script type="text/javascript">
  2. function get_search()
  3. {
  4. advAJAX.submit(document.getElementById("search_form")), {
  5. onInitialization : function() { document.getElementById("search_results").innerHTML = "<img src=\"images/loading.gif\">"; },
  6. onSuccess : function(obj) { document.getElementById("search_results").innerHTML = obj.responseText },
  7. onError : function(obj) { alert("Error: " + obj.status); }
  8.  
  9. };
  10. }

i jak klikam na Wyszukaj, to nadal nic sie nie dzieje.

Co może być przyczyną??

Pomóżcie

Ten post edytował puz219 29.01.2008, 20:56:52
Go to the top of the page
+Quote Post
arecki
post 29.01.2008, 21:23:52
Post #4





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


Zainstaluj sobie firefoxa i firebuga do niego i będziesz wiedział gdzie jest problem. Jak dla mnie to mogłeś tego nawiasu nie domykać bo nie trafiłeś z domknięciem. Porównaj sobie Twoje wywołanie z manualem na stronie advajax.anakin.us i będziesz wiedział gdzie leży problem.


--------------------
Go to the top of the page
+Quote Post
puz219
post 31.01.2008, 09:43:26
Post #5





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


No to jeszcze mam kilka pytań odnośnie formularzy, a właściwie kilka problemów z nimi.

Pierwszy problem jest taki, że jak wpiszę coś do pola wyszukiwania i nacisnę klawisz enter, to formularz wykonuje sie w standardowy sposób, bez ajaxa, czyli przeładowuje mi stronę i wysyła dane.

Kolejny problem jest taki, że jak wpiszę coś, kliknę wyszukaj, to wtedy ładnie wczyta do diva, a jeśli potem znów coś wpisze do okna wyszukiwarki i kliknę wyszukaj, to znów wysyła formularz w tradycyjny sposób bez ajaxa.

A 3 problem, który zauważyłem występuje w IE7, a mianowicie, jeśli wpiszę coś do okna wyszukiwania, kliknę wyszukaj, to ładnie wczytuje do diva, ale po jakiejś sekundzie znów samo wysyła formularz i to jeszcze w tradycyjny sposób i widzę tylko napis, że wyrażenie jest za krótkie.

Proszę o pomoc, jak rozwiązać te problemy.

Pozdrawiam

//EDIT: Ostatnie dwa problemy częściowo rozwiązałem, zmieniałem assign() na sumit() i w formularzu dałem type=button zamiast type=sumbit, lecz nadal pozostaje taki problem, że jak wpisze coś w okno wyszukiwania i nacisnę klawisz enter, to formularz wykonuje się w standardowy sposób.

Jak temu zaradzić.

Proszę o pomoc
Go to the top of the page
+Quote Post
arecki
post 31.01.2008, 20:16:48
Post #6





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


Dodaj do pola input zdarzenie "onchange" uruchamiające wysyłanie przez AJAX'a i powinno działać.


--------------------
Go to the top of the page
+Quote Post
puz219
post 1.02.2008, 11:11:26
Post #7





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


dodałem do pola <input type="text" />, czyli tego, w którym wpisuje tekst do wyszukania zdarzenie onchange i w ogóle nie działa, znaczy jak coś wpiszę i nacisnę enter, to pokazuje obrazek lądowania w divie, do którego ma wszytać rezultat, ale wynik już normalnie pokazuje, znaczy nawet nie pokazuje, wygląda tak, jak by nie przesłało żadnych danych, piszę, że szukany wyraz jest za krótki.
Go to the top of the page
+Quote Post
arecki
post 1.02.2008, 21:30:53
Post #8





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


Pokaż kod bo nie domyślę się co wpisałeś do "onchange" smile.gif (pokaż całość)


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:21