2013-03-12 14 views
9

Niedawno zadałem pytanie, na które częściowo udzielono odpowiedzi, ale miałem nadzieję, że ktoś może wyjaśnić to nieco jaśniej. Dotyczy funkcji PHP i serializacji.KIEDY używać serializacji vs zwykły POST

Mam więc formularz z 12 polami, wszystkie z nazwami. Tradycyjnie po prostu użyłbym metody POST, wysłałbym je na stronę PHP, a następnie dostarczyłem je do bazy danych.

Dzisiaj natknąłem się na metodę serializacji, ale po jej użyciu wydaje się, że nie robi nic, co zrobiłoby zwykłe polecenie POST. Na przykład, jeśli chciałem użyć serialize, chciałbym wykonać następujące czynności:

var formData = $('#contForm').serialize(); 
$.post('functs.php',formData,dispAdd); 

Następnie wydrukować wartości użyłbym

echo $_POST['value_name'] 

co widzę dzieje jest to, że z lub bez serialize, Otrzymuję takie same wyniki. Czy coś mi umyka?

+5

serialize to najkrótsza droga do zbieramy wszystkie dane formularza i wysyłamy je ... –

+0

Nie tak naprawdę, ponieważ działa bez użycia serializacji? –

+3

Tak, jeśli nie używasz ajax, dane zostaną opublikowane, ale jeśli używasz ajax i nie używasz serializacji, musisz ręcznie utworzyć pary klucz-wartość –

Odpowiedz

4

Metoda .serialize() tworzy ciąg tekstowy w standardowej notacji zakodowanej za pomocą adresu URL. Działa na obiekcie jQuery reprezentującym zbiór elementów formularza . Elementy formularza mogą być kilku typów. Read more.

.serialize() jest używany, gdy wysyłasz dane za pośrednictwem żądania AJAX. Jest to to samo, co przesłanie formularza za pomocą przycisku przesyłania. Różni się tylko, gdy używasz AJAX, nie odświeża strony. To dlatego otrzymujesz te same wyniki, mimo że przesyłasz formularz za pomocą przycisku przesyłania lub .serialize() podczas korzystania z AJAX.

.serializeArray() byłaby alternatywą dla .serialize().

Pamiętaj jeśli nie używać .serialize() trzeba tworzyć pary klucz-wartość ręcznie @Akam wspomniano w komentarzu.

I wreszcie

Kiedy używać serializacji < - Podczas korzystania AJAX aby umieścić dane

Przy regularnym POST < - Podczas korzystania z przycisku Prześlij, aby opublikować dane

+0

Wielkie dzięki! Znalazłem również ładny mały tutorial tutaj http://www.namepros.com/webmaster-tutorials/281176-php-using-serialize-handle-store-arrays.html –

+0

Ten post był DOKŁADNIE tym, czego potrzebowałem. Dziękuję za tak świetne wyjaśnienia. Zawsze uczę się tony na tych deskach. –

+1

Cieszę się, że mogłem pomóc :-) – Techie

Powiązane problemy