2013-03-12 3 views
9

Недавно я задал вопрос, на который частично ответил, но я надеялся, что кто-то может объяснить это немного яснее. Это касается PHP и функции сериализации.КОГДА использовать сериализацию против обычного POST

У меня есть форма с 12 полями, все с именами. Традиционно я просто использовал метод POST, отправлял их на страницу PHP, а затем поставлял их в базу данных.

Сегодня я наткнулся на метод serialize, но после его использования кажется, что он не делает ничего, что сделает регулярная инструкция POST. Например, если я хотел бы использовать Serialize, я хотел бы сделать следующее:

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

Затем напечатать значение я хотел бы использовать

echo $_POST['value_name'] 

Что я вижу, что происходит, что с или без сериализации, Я получаю те же результаты. Я что-то упустил?

+5

сериализации является кратчайшим путем собрать все данные формы и отправить его ... – 2013-03-12 05:20:33

+0

Не правда, хотя, потому что он работает, даже не используя сериализацию? –

+3

Да, если вы не используете ajax, данные будут опубликованы, но если вы используете ajax и не используете сериализацию, вам нужно создать свои пары ключ-значение вручную. – 2013-03-12 05:23:50

ответ

4

Метод .serialize() создает текстовую строку в стандартной кодировке с кодировкой URL. Он работает с объектом jQuery, представляющим набор элементов формы . Элементы формы могут быть нескольких типов. Read more.

.serialize() используется, когда вы отправляете данные по запросу AJAX. Это то же самое, что отправить форму с помощью кнопки отправки. Разница только в том, что при использовании AJAX он не обновляет страницу. Вот почему вы получаете одинаковые результаты, даже если вы отправляете форму с помощью кнопки отправки или .serialize() при использовании AJAX.

.serializeArray() будет альтернативой .serialize().

Помните, что, если вы не используете .serialize(), вам необходимо создать свои пары ключ-значение вручную как @Akam, упомянутые в комментарии выше.

И наконец

Когда использовать сериализации < - При использовании AJAX для отправки данных

Когда регулярный POST < - При использовании кнопки отправки для отправки данных

+0

Большое спасибо! Я также нашел хороший небольшой учебник здесь http://www.namepros.com/webmaster-tutorials/281176-php-using-serialize-handle-store-arrays.html –

+0

Это сообщение было ТОЧНО, что мне было нужно. Спасибо за такие большие объяснения. Я всегда узнаю тонну на этих досках. –

+1

Я рад, что смогу помочь :-) – Techie

Смежные вопросы