Już kiedyś interesowałem się jQuery, ale w związku z podjęciem się nowego, dużego projektu postanowiłem pogłębić swoją wiedzę i pobawić się tą biblioteką.
Jako, że klient ma bzika na punkcie przeładowań ajax postanowiłem zaimplementować automatyczne przesyłanie formularzy w tle i wklejanie w <body>
response żądania. Od strony PHP sprawa wygląda bardzo prosto – jeżeli request został wysłany przez jQuery, wyświetlamy tylko to, co jest pomiędzy <body>
i </body>
. Po wysłaniu requesta, jQuery powinno wkleić wynik do body na naszej stronie.
Przykładu nie będę tłumaczył, bo wydaje mi się trywialny.
Dodatkowe ficzery:
- disable submita do momentu, aż ajax nie otrzyma odpowiedzi (aby użytkownik nie mógł kliknąć drugi raz),
- automatyczne wykrywanie adresu URL, do którego odnosi się formularz (jeżeli nie sprecyzowano atrybutu
action
, wówczas wysyłamy żądanie dowindow.location
).
Aby nasz formularz zaczął przesyłać dane w tle wystarczy dołączyć plik jquery.autoload
, a w kodzie napisać:
$(document).ready(function() { InitAjaxPost(' ... SUBMIT_ID ... '); });
Ten sposób nie rozwiązuje przesyłania pól typu file
.