Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/js] Znaczniki <form> i konflikt z ajax'em
zezu
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 14.03.2006

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


Dlaczego tak się dzieję : Mam formularz w którym każe z pól jeśli zachodzi dla niego onBlur jest walidowane (dzięki ajaxowi) i obok pola pojawia się znaczek informujący czy jest ok czy nie.

Tak to ma miejsce jeśli formularza nie ma w znacznikach <form> , wtedy ajax nie działa (nie waliduje).

Nie wiem jak to obejść , pozdrawiam (ps.nie chcę wysyłać formualrza ajaxem)

Ten post edytował zezu 26.10.2006, 19:17:51
Go to the top of the page
+Quote Post
yaro
post
Post #2





Grupa: Zarejestrowani
Postów: 160
Pomógł: 4
Dołączył: 22.04.2006
Skąd: Kraków

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


moze pokaż kod.


--------------------
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


1. To przez to że obramowanie jest zielone.

2. Proszę poprawić temat wątku.
Nie jest zgodny z zasadami panującymi na forum Przedszkole.


P.S.
Głupia odpowiedź, co?
A niby co mamy Ci powiedzieć jak nie pokazałeś kodu.
Jak Ci się auto zepsuje to prowadzisz je do warsztatu czy idziesz sam i tylko o nim opowiadasz?
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Cytat
Tak to ma miejsce jeśli formularza nie ma w znacznikach <form> , wtedy ajax nie działa (nie waliduje).

Czyli prawdopodobnie za pomocą JS odnosisz się do pola, które walidujesz przez document.forms[0].nazwa_pola.value
Co oznacza, że jeśli masz znaczniki form, to wsio działa, jak je usuniesz, to nagle skrypt się gubi. Oczywiście to spekulacja, bo faktycznie może to być wina zielonego obramowania jak już sugerował mike_mech

Pozdrawiam.

Ten post edytował Cysiaczek 26.10.2006, 15:27:17


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
zezu
post
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 14.03.2006

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


Sorry panowie - wdarł się błąd ... jeśli są znaczniki form skrypt nie działa (nie waliduje , a faktycznie ajax powinien zbierać wartości pół po ich ID). Jeśli znaczniki mam usunięte skrypt waliduje - a wystaczy wpisać tylko <form> i </form> i nie działa niestety.

Chciałem uniknąć wklejenia kodu bo wydaje mi się że dodanie znaczników <form> nie powinno zmieniać dzałania javascriptu (mam nadzieję że się nie mylę).

Kod formularza
  1. <tr>
  2. <td class="bold" align="right">Twój nick : </td>
  3. <td align="left"><input type="text" class="login2" name="nick" id="nick" onClick="nick()" ></td>
  4. <td class="h" align="right"> (max 12 znaków) </td>
  5. <td align="left" width="110px" class="red1"><div id="1"> </div></td>
  6. </tr>
  7. <tr>
  8. <td class="bold" align="right">Twój email : </td>
  9. <td align="left"><input type="text" class="login2" name="email" id="email" onBlur="email()" ></td>
  10. <td class="h1" align="right"> (max 25 znaków) </td>
  11. <td align="left" width="110px" class="red1"><div id="2"> </div></td>
  12. </tr>
  13. </form>


Kod funkcji dla advAjax
  1. function email(){
  2. $email = document.getElementById('email').value;
  3. $_div=2;
  4.  
  5. advAJAX.setDefaultParameters({
  6. onInitialization : function(obj) { document.getElementById(obj.tag).innerHTML = "Czekaj !"; },
  7. onLoading : function(obj) { document.getElementById(obj.tag).innerHTML = "Sprawdzam !"; },
  8. onSuccess : function(obj) { document.getElementById(obj.tag).innerHTML = "" + obj.responseText; },
  9. onError : function(obj) { document.getElementById(obj.tag).innerHTML = "Blad !!!"; }
  10. });
  11. advAJAX.get({ url: "./s/c_email.php?email="+$email, tag: $_div });
  12.  
  13. }


Sktypt php sprawdzający ma tylko zwrócić jedna z dwóch wartości i jest poprawny
Obramowanie mam niebieskie.
Go to the top of the page
+Quote Post
yaro
post
Post #6





Grupa: Zarejestrowani
Postów: 160
Pomógł: 4
Dołączył: 22.04.2006
Skąd: Kraków

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


Czy twój tag (domyślam się że to jest div) ma id=2?

Wydaje mi się że id powinien zaczynać się od litery, a nie od cyfry.

I jeszcze nie zabardzo rozumiem dlaczego użyłeś advAJAX.setDefaultParameters
zamiast wrzucić to wyszystko do advAJAX.get, bo przecież nie wykonujesz naraz kilku połączeń.


--------------------
Go to the top of the page
+Quote Post
zezu
post
Post #7





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 14.03.2006

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


Przepisałem na advAJAX.get , ale dalej nie działa questionmark.gif? Czy napisałem coś nie tak ? Jakaś nietypowa konstrukcja ? Nazwy divów zmieniłem na literowe.
Go to the top of the page
+Quote Post
yaro
post
Post #8





Grupa: Zarejestrowani
Postów: 160
Pomógł: 4
Dołączył: 22.04.2006
Skąd: Kraków

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


A może przydałoby sie wpisać action i method do form


--------------------
Go to the top of the page
+Quote Post
zezu
post
Post #9





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 14.03.2006

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


Zanim dałem pierwszego posta ogoliłem kod z czego się dało, dlatego nie było typu i skryptu docelowego ... ale sprawdziłem dodając to i dalej bez efektu.

btw.pierwszy raz korzystam z ajaxa do walidacji submitowanego formularza ale wydaje mi się że jego zachowanie nie powino od tego zależeć czy walidujemy formularz czy inne pola.

pozdr , wszelkie podpowiedzi mile widziane - nie chcę rezygnowac z tego rozwiązania (na życzenię moge pokazać kod sad.gif ) .
Go to the top of the page
+Quote Post
jarrod
post
Post #10





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

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


Cytat(zezu @ 26.10.2006, 18:18:17 ) *
  1. <div id="1"> </div>
  2. <div id="2"> </div>

id nie może zaczynać się od znaków zpecjalnych ani od liczb. Dozwolone pierwsze znaki to: [a-zA-Z0-9_].

Zmień id na np d_1 i d_2 i powinno zadziałać

Ten post edytował jarrod 26.10.2006, 21:09:23
Go to the top of the page
+Quote Post
zezu
post
Post #11





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 14.03.2006

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


Dwa posty wyżej jest info o tym że zmieniłme nazwy divów...dziwna niezrozumiała dla mnie sprawa...
Go to the top of the page
+Quote Post
mls
post
Post #12





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


Tak przy okazji, zalecałbym inne nazewnictwo w id i inne w nazwie funkcji. Sam już miałem taki problem, że coś nie działało tylko dlatego, że funkcja nazywała się tak samo jak wartość jednego z id...


--------------------
Go to the top of the page
+Quote Post
zezu
post
Post #13





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 14.03.2006

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


Ważny komunikat : Nazwy pól formularza , id tych pól oraz funkcje nie powinny być takie same !

Dzięki mls ! Już jest ok !
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 Aktualny czas: 20.08.2025 - 19:45