Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] Formularz, walidacja, gdy JS wyłaczony.
Forum PHP.pl > Forum > Przedszkole
hejkumkejkum
Mam taką zagwozdkę.

Piszę sobie wtyczkę do wordpressa gdzie chciałem zastosować formularz zamówienia. Formularz ten ma walidację przy użyciu javascript, oczywiście przy użyciu PHP również.
Ale problem mam z tym, co będzie gdy ktoś zablokuje javascript. Wówczas po naciśnięciu przycisku wyślij pojawia się "masło maślane", bo submit wywoła plik, którego wywołać poprzez action="skrypt.php" od tak nie powinien.

Chodzi mi o to, ze odwołanie do skryptu przez submit musiałoby być do innego pliku w przypadku działającego javascript, a do innego w przypadku wyłączonego.
Ewentualnie uzależnienie działania przycisku wysyłającego formularz od Javascript.

Nie wiem czy zostanę dobrze zrozumiany.

Jak to się zazwyczaj robi by uniknąć błędów?


Pyton_000
Wysyłając powinieneś do jednej metody, lub przez JS do innej metody która później docelowo i tak przekaże wynik do tej samej metody co formularz bez JS.
hejkumkejkum
Pyton_000 prosiłbym o jakąś łopatologię bo nie do końca rozumiem.

Może jakiś przykład albo link do przykładu bym mógł to sobie wzrokowo przetrawić.

Nie jestem wielce biegły w programowaniu ale uparty, a chciałbym to zrobić dobrze.
owca_82
Sprawa jest prosta.
W formularzu ustawiasz zdarzenie js onsbmit w którym robisz walidację formularza po stronie przeglądarki a następnie przy pomocy ajaxa uruchamiasz określony skrypt php po stronie serwera który może być różny od tego z atrybutu action formularza. Oczywiście na końcu funkcji obsługującej to zdarzenie musisz dać return false żeby naciśnięcie przycisku wyślij nic nic dało.

Jeżeli js będzie wyłączone to zdarzenie nie "zaskoczy" i po naciśnięciu wyślij w formularzu zostanie wykonany plik podany w action formularza.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.