Источник: http://habrahabr.ru/post/42426/
Для загрузки HTML кода в необходимый DOM элемент на странице нам подойдет метод load
. Данный метод может принимать следующие параметры:
url
запрашиваемой страницы// по окончанию загрузки страницы
$(document).ready(function(){
// вешаем на клик по элементу с id = example-1
$('#example-1').click(function(){
// загрузку HTML кода из файла example.html
$(this).load('ajax/example.html');
})
});
Пример подгружаемых данных (содержимое файла example.html
):
Example<br/>
Data Loaded By AJAX<br/>
Bye-Bye
Это самый основной метод, а все последующие методы лишь обертки для метода jQuery.ajax
. У данного метода лишь один входной параметр — объект включающий в себя все настройки (выделены параметры которые стоит запомнить):
callback
функцию (xml, html, script, json, text, _default)callback
функции для работы с JSONP (по умолчанию генерируется на лету)GET
либо POST
url
запрашиваемой страницыЛокальные AJAX Event'ы:
Для организации HTTP авторизации:
Пример javaScript'а:
$.ajax({
url: '/ajax/example.html', // указываем URL и
dataType : "json", // тип загружаемых данных
success: function (data, textStatus) { // вешаем свой обработчик на функцию success
$.each(data, function(i, val) { // обрабатываем полученные данные
/* ... */
});
}
});
Загружает страницу, используя для передачи данных GET запрос. Может принимать следующие параметры:
url
запрашиваемой страницыcallback
функция, которой будет скормлен результат (необязательный параметр)callback
функцию (xml, html, script, json, text, _default)Данный метод аналогичен предыдущему, лишь передаваемые данные уйдут на сервер посредством POST'а. Может принимать следующие параметры:
url
запрашиваемой страницыcallback
функция, которой будет скормлен результат (необязательный параметр)callback
функцию (xml, html, script, json, text, _default)JavaScript:
$(document).ready(function() { // по завершению загрузки страницы
$('#example-3').click(function() { // вешаем на клик по элементу с id = example-3
$.post('ajax/example.xml', {}, function(xml) { // загрузку XML из файла example.xml
$('#example-3').html('');
$(xml).find('note').each(function() { // заполняем DOM элемент данными из XML
$('#example-3').append('To: ' + $(this).find('to').text() + '<br/>')
.append('From: ' + $(this).find('from').text() + '<br/>')
.append('<b>' + $(this).find('heading').text() + '</b><br/>')
.append($(this).find('body').text() + '<br/>');
});
}, 'xml'); // указываем явно тип данных
})
});
Файл example.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Загружает данные в формате JSON (удобней и быстрее нежели XML). Может принимать следующие параметры:
url
запрашиваемой страницыcallback
функция, которой будет скормлен результат (необязательный параметр)JavaScript:
$(document).ready(function(){ // по завершению загрузки страницы
$('#example-4').click(function(){ // вешаем на клик по элементу с id = example-4
$.getJSON('ajax/example.json', {}, function(json){ // загрузку JSON данных из файла example.json
$('#example-4').html('');
// заполняем DOM элемент данными из JSON объекта
$('#example-4').append('To: ' + json.note.to + '<br/>')
.append('From: ' + json.note.from + '<br/>')
.append('<b>' + json.note.heading + '</b><br/>')
.append( json.note.body + '<br/>');
});
})
});
Файл example.json
:
{
note:{
to:'Tove',
from:'Jani',
heading:'Reminder',
body:'Don\'t forget me this weekend!'
}
}
Данная функция загружает и выполняет локальный JavaScript. Может принимать следующие параметры:
url
запрашиваемого скриптаcallback
функция, которой будет скормлен результат (необязательный параметр)JavaScript:
$(document).ready(function(){ // по завершению загрузки страницы
$('#example-5').click(function(){ // вешаем на клик по элементу с id = example-5
$.getScript('ajax/example.js', function(){ // загрузку JavaScript'а из файла example.js
testAjax(); // выполняем загруженный JavaScript
});
})
});
Файл example.js
:
function testAjax() {
$('#example-5').html('Test completed'); // изменяем элемент с id = example-5
}
Для отправки формы посредством jQuery можно использовать любой из перечисленных способов, а вот для удобства «сбора» данных из формы лучше использовать плагин jQuery Form.
Для отправки файлов посредством jQuery можно использовать плагин Ajax File Upload иль One Click Upload.
Для организации работы с PHP использую бибилотеку jQuery-PHP. Подробней читаем в статье PHP библиотека для jQuery.