Прежде всего, при работе с Ajax вам не нужно возвращать XML с сервера, вы можете возвращать простой текст, XML, строки JSON, буквально любую форму текстовых данных, которую вы хотите. Один пример заполнения Datatable данными JSON представлен здесь:
http://developer.yahoo.com/yui/examples/datatable/dt_xhrjson.html
Пример отправки почтового запроса с использованием Ajax и YUI приведен здесь.
http://developer.yahoo.com/yui/examples/connection/post.html
Это должно помочь вам начать, теперь просто свяжите их вместе.
Для подключения к серверу вы можете использовать метод Yahoo.util.Connect.asyncRequest, который принимает следующие параметры:
static object asyncRequest ( method , uri , callback , postData );
См. Пример здесь, этот использует «GET», так что вы можете использовать «GET» или «POST», просто убедитесь, что вы передаете свои параметры
http://developer.yahoo.com/yui/examples/json/json_connect.html
Как только ваша функция вернется к «onSuccess», сделайте следующее, чтобы проанализировать текст ответа в JSON
try {
jsonData = YAHOO.lang.JSON.parse(o.responseText);
}
catch (x) {
alert("JSON Parse failed!");
return;
}
Объект "jsonData" теперь содержит ваши данные, поэтому теперь вы можете следовать этому примеру:
http://developer.yahoo.com/yui/examples/datatable/dt_basic.html
В нем показано, как инициализировать таблицу данных с помощью локального объекта, содержащего источник данных. в основном это было бы что-то вроде этого
var myColumnDefs = [
{key:"Column1Data", label:"Column1 Header" sortable:true, resizeable:true},
{key:"Column2Data", label:"Column2 Header" sortable:true, resizeable:true}
];
var myDataSource = new YAHOO.util.DataSource(jsonData);
myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
myDataSource.responseSchema = {
fields: ["Column1Data","Column2Data"]
};
var myDataTable = new YAHOO.widget.DataTable("basic",
myColumnDefs, myDataSource, {caption:"DataTable Caption"});
Чтобы это работало, у вас должен быть контейнер "div" в HTML-коде с идентификатором "basic" note, это соответствует первому параметру в DataTable
Надеюсь, это поможет