Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][AJAX][PHP] Formularz PHP, echo oraz json
hejkumkejkum
post 9.03.2012, 19:04:17
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.11.2007

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


Mam sobie formularz w PHP, który jest walidowany przez JavaScript ale oprócz tego, jest też walidowany w PHP, gdyby ktoś JavaScript miał wyłączony.

W zasadzie wszystkie formularze jakie znalażłem w sieci na potrzeby nauki, nie uwzględniają działania w sytuacji blokowanego lub wyłaczonego JavaScript ale uzywają Json. Ja chciałem mieć mechanizm działający w obu przypadkach, z Javascript i bez.

Problem polega na tym, że gdyby zdażyła się sytuacja, że funkcja mail() zwraca błąd, to osoba wysyłająca formularz dostanie komunikat że wiadomośc wysłana.
Dzieje się to dlatego, że JavaScript w moim formularzu nie wie czy php zwraca jakiś błąd czy nie, po prostu wysyła.

Chciałem więc to usprawnić i dodać warunek w JavaScript, który zabezpieczałby taką sytuację jak niedziałająca funkcja mail() lub inny błąd, który spowodował niewysłanie wiadomości.

Pomysłałem sobie, żeby zastosować Json.
Ale mam kolejny problem jak pogodzić JSON i to, że obecnie w pliku PHP mam warunki, które zwracają poprzez echo błedy danych pół walidowanych przy pomocy preg_match.

Czyli jak zrobić formularz który będzie działał i przy użyciu Json, jak i w sytuacji gdy wyłączony będzie Javascritp.
Bo obecnie formularz wysyła się bez względu na wszystko gdyż Javascript nei wie że wystapił błąd. Wysyłający sądzi, że wszystko poszło ok a wiadomośc nie dotrze.

Prosze o jakiś bryk, który pozwoliłby mi to zrealizować poprawnie.

Ten post edytował hejkumkejkum 9.03.2012, 19:04:40
Go to the top of the page
+Quote Post
#luq
post 9.03.2012, 19:12:24
Post #2





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Ogólnie Twój backend powinien robić coś takiego:

  1. $err = array();
  2. if(0 == strlen($foo)){
  3. $err[] = 'Foo nie moze byc puste';
  4. }
  5. if((...)){
  6. $err[] = (...)
  7. }
  8.  
  9. echo json_encode($err);


--------------------
Moja gra - scraby.io
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: 5.07.2025 - 22:21