Updated the AJAX library to handle custom JSON handlers (functions to parse the JSON data and format it as needed)

git-svn-id: http://svn.cleancode.org/svn/pickles@39 4d10bc64-7434-11dc-a737-d2d0f8310089
This commit is contained in:
Josh Sherman 2008-08-29 02:34:28 +00:00
parent 0f45997d55
commit 7667db3fec

View file

@ -58,8 +58,10 @@ function createRequest() {
}
}
function ajaxSubmit(form) {
function ajaxSubmit(form, customHandler, beforeOrAfter) {
var params = '';
var customHandler = (customHandler == null) ? null : customHandler;
var beforeOrAfter = (beforeOrAfter == null) ? 'before' : beforeOrAfter;
if (params = getForm(form)) {
createRequest();
@ -72,15 +74,20 @@ function ajaxSubmit(form) {
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200) {
var responseObject = eval( "(" + request.responseText + ")" );
var responseElement = document.createElement('div');
responseElement.className = responseObject.type;
if (customHandler) {
responseElement = window[customHandler](responseObject, responseElement);
}
else {
var responseMessage = document.createTextNode(responseObject.message);
responseElement.appendChild(responseMessage);
responseElement.className = responseObject.type;
form.insertBefore(responseElement, form.firstChild);
responseElement.appendChild(responseMessage);
}
form.insertBefore(responseElement, (beforeOrAfter == 'before') ? form.firstChild : form.lastChild);
}
}