Ответ 1
Я работаю над подобной проблемой, и я согласен с тем, что стоит сначала научиться программировать, не используя фреймворк. Я использую объект данных (BP.reading) для хранения информации, в моем случае чтение кровяного давления. Затем JSON.stringify(dataObj) дозирует работу для вас.
Вот обработчик для нажатия кнопки "Сохранить", который является методом на dataObj. Примечание. Я использую форму вместо таблицы для ввода данных, но такая же идея должна применяться.
update: function () {
var arr = document.getElementById("BP_input_form").firstChild.elements,
request = JDK.makeAjaxPost(); // simple cross-browser httpxmlrequest with post headings preset
// gather the data and store in this data obj
this.name = arr[0].value.trim();
...
this.systolic = arr[3].value;
this.diastolic = arr[4].value;
// still testing so just put server message on page
request.callback = function (text) {
msgDiv.innerHTML += 'server said ' + text;
};
//
request.call("BP_update_server.php", JSON.stringify(this));
}
Я надеюсь, что это полезно
* редактировать, чтобы показать общую версию *
В моей программе я использую объекты для отправки, получения, отображения и ввода одного и того же типа данных, поэтому у меня уже есть готовые объекты. Для более быстрого решения вы можете просто использовать пустой объект и добавить к нему данные. Если данные представляют собой набор данных того же типа, просто используйте массив. Однако с объектом у вас есть полезные имена на стороне сервера. Вот более общая версия untested, но прошла jslint.
function postUsingJSON() {
// collect elements that hold data on the page, here I have an array
var elms = document.getElementById('parent_id').elements,
// create a post request object
// JDK is a namespace I use for helper function I intend to use in other
// programs or that i use over and over
// makeAjaxPost returns a request object with post header prefilled
req = JDK.makeAjaxPost(),
// create object to hold the data, or use one you have already
dataObj = {}, // empty object or use array dataArray = []
n = elms.length - 1; // last field in form
// next add the data to the object, trim whitespace
// use meaningful names here to make it easy on the server side
dataObj.dataFromField0 = elms[0].value.trim(); // dataArray[0] =
// ....
dataObj.dataFromFieldn = elms[n].value;
// define a callback method on post to use the server response
req.callback = function (text) {
// ...
};
// JDK.makeAjaxPost.call(ULR, data)
req.call('handle_post_on_server.php', JSON.stringify(dataObj));
}
Удачи.