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:
parent
0f45997d55
commit
7667db3fec
1 changed files with 14 additions and 7 deletions
|
@ -58,8 +58,10 @@ function createRequest() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ajaxSubmit(form) {
|
function ajaxSubmit(form, customHandler, beforeOrAfter) {
|
||||||
var params = '';
|
var params = '';
|
||||||
|
var customHandler = (customHandler == null) ? null : customHandler;
|
||||||
|
var beforeOrAfter = (beforeOrAfter == null) ? 'before' : beforeOrAfter;
|
||||||
|
|
||||||
if (params = getForm(form)) {
|
if (params = getForm(form)) {
|
||||||
createRequest();
|
createRequest();
|
||||||
|
@ -71,16 +73,21 @@ function ajaxSubmit(form) {
|
||||||
|
|
||||||
request.onreadystatechange = function() {
|
request.onreadystatechange = function() {
|
||||||
if (request.readyState == 4 && request.status == 200) {
|
if (request.readyState == 4 && request.status == 200) {
|
||||||
var responseObject = eval( "(" + request.responseText + ")" );
|
var responseObject = eval( "(" + request.responseText + ")" );
|
||||||
|
|
||||||
var responseElement = document.createElement('div');
|
var responseElement = document.createElement('div');
|
||||||
responseElement.className = responseObject.type;
|
|
||||||
|
|
||||||
var responseMessage = document.createTextNode(responseObject.message);
|
if (customHandler) {
|
||||||
|
responseElement = window[customHandler](responseObject, responseElement);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var responseMessage = document.createTextNode(responseObject.message);
|
||||||
|
|
||||||
|
responseElement.className = responseObject.type;
|
||||||
|
|
||||||
responseElement.appendChild(responseMessage);
|
responseElement.appendChild(responseMessage);
|
||||||
|
}
|
||||||
|
|
||||||
form.insertBefore(responseElement, form.firstChild);
|
form.insertBefore(responseElement, (beforeOrAfter == 'before') ? form.firstChild : form.lastChild);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue