jQuery: учимся передавать данные на сервер при помощи $.post.() и $.get()
Просмотров: 188
jQuery: учимся передавать данные на сервер при помощи $.post.() и $.get()
комментарии (2)
jQuery: учимся передавать данные на сервер при помощи $.post.() и $.get()

Сегодня я хочу научить вас POST'ить (передавать) данные на сервер. Вы спросите: "А что это такое и для чего это вообще нужно?" При помощи post-запроосов можно например, добавить материал на сервер (сайт), отправить ЛС, добавить сообщение в мини-чат....что ещё....повысить репутацию, подарить подарок и т.п, И всё это без iframe'ов!

Начнём с примера.
У нас есть страница /news/0-0-0-0-1. В ней находится такой код:

Code

<form method="post">
  <input type="hidden" name="a" value="2" />
  <input type="hidden" name="jkd428" value="1" />
  <input type="hidden" name="jkd498" value="1" />
  <input type="text" name="cat" />  
  <input type="text" name="title" />
  <textarea name="brief" cols="15" rows="5"></textarea>
  <input type="text" name="other1" />
  <input type="submit" value="Добавить" />
  <input type="hidden" name="ssid" value="123456789" />
</form>

Составим post-запрос для того, чтобы отправить данные на сервер

Code

$.get('/news/0-0-0-0-1', function(data){  
var sesid = $('input[name="ssid"]', data).val();  
$.post('/news/', {  
a: '2',  
jkd428: '1',  
jkd498: '1',  
cat: '1',  
title: 'Название материала',
brief: 'Описание материала',  
other1: 'Доп. поле 1',
ssid: sesid  
}, function(){alert('Материал добавлен!')});  
});  

В этом месте

Code
a: '2',  
jkd428: '1',  
jkd498: '1',  
cat: '1',  
title: 'Название материала',
brief: 'Описание материала',  
other1: 'Доп. поле 1',
ssid: sesid

мы указываем значения для полей. Отдельно хочется поговорить об этой

Code
<input type="hidden" name="ssid" value="123456789" />

этой
Code
$.get('/news/0-0-0-0-1', function(data){  
var sesid = $('input[name="ssid"]', data).val();

и этой строчке
Code
ssid: sesid

Число 123456789 меняется при каждом обновлении страницы. Оно может быть таким: 14576734257 и таким: 57663845648 и т.д. Нам необходимо получить его. Делаем мы это при помощи get-запроса:

Code
$.get('/news/0-0-0-0-1', function(data){  
var sesid = $('input[name="ssid"]', data).val();

Но бывают и модули, в которых не нужно указывать ssid (id сессии). Например мини-чат и Личные Сообщения.

Такс....что ещё?....а, ну да! Значение поля

Code
<input type="hidden" name="a" value="2" />

у каждого модуля разное. Его вы можете посмотреть тут

Теперь быстренько пробежимся по тому, что мы изучили:

Code

$.get('/news/0-0-0-0-1', function(data){  
var sesid = $('input[name="ssid"]', data).val(); // Получаем id сессии.
$.post('/news/', { // Куда постим данные (в данном случае в "Новости Сайта").
a: '2', // Указываем значения для поля "a".
jkd498: '1', // Указываем значения для поля "jkd498".
jkd428: '1', // Указываем значения для поля "jkd428".
cat: '1', // Указываем значение для поля "cat" (это id категории).
title: 'Название материала', // Указываем значения для поля "title".
brief: 'Описание материала', // Указываем значения для поля "brief".
other1: 'Доп. поле 1', // Указываем значения для поля "other1".
ssid: sesid // Указываем значения для поля "ssid".
}, function(){alert('Материал добавлен!')}); // Что будет происходить после добавления материала  
}); в данном случае выскочит окошко с текстом "Материал добавлен!".

Ну вот и всё! :)
Свои вопросы и отзывы оставляйте в комментариях))

Гость | комментарии (2)