Пример простого и удобного метода работы с Ajax в jQuery.
17.06.2012
Данный код работает начиная с версии 1.5 (с появлением в jQuery Deferred Object).
Этот пример обращается к php скрипту "ajax.index.php" с параметром "action=get_val", а так же передает данные "title" и "intro" методом "POST".
1 |
$.ajax({ type: "POST", // Методом POST url: "ajax.index.php?action=get_val", // Адрес data: // Передаваемые параметры { title: encodeURI($("#title").val()), intro: encodeURI($("#intro").html()) }, }).done(function( data ) { // Функция успешного завершения var obj = jQuery.parseJSON( data ); // Разбор ответа $("#meta_title").val( decodeURI(obj.meta_title) ); $("#meta_keyword").val(decodeURI(obj.meta_keyword) ); }); |
Предполагается, что скрипт возвращает данные (meta_title и meta_keyword) в формате JSON.
Формировать такой ответ удобнее всего php функцией json_encode
1 |
die(json_encode($array)); |
Данные кодируются и раскодируются функциями encodeURI и decodeURI, с их использованием сеть проблема: все пробелы заменяются на знаки плюс
Пример без комментариев
1 |
$.ajax({ type: "POST", url: "ajax.index.php?action=get_val", data: { title: encodeURI($("#title").val()), intro: encodeURI($("#intro").html()) }, }).done(function( data ) { var obj = jQuery.parseJSON( data ); $("#meta_title").val( decodeURI(obj.meta_title) ); $("#meta_keyword").val(decodeURI(obj.meta_keyword) ); }); |