From b9ef324a25e243ec4f595cc2342d46abe5d23d17 Mon Sep 17 00:00:00 2001 From: Georg Hopp Date: Thu, 25 Oct 2007 11:50:26 +0000 Subject: [PATCH] --- ajax+json/ajax.php | 7 +++-- js/callbacks.js | 21 ++++++++++++++ js/helper.js | 5 +++- js/service.js | 48 +++++++++++++++++++++++++++++++ js/xmlify.js | 37 +++++++++++++----------- testxmlify.html | 72 ++++------------------------------------------ 6 files changed, 103 insertions(+), 87 deletions(-) create mode 100644 js/callbacks.js create mode 100644 js/service.js diff --git a/ajax+json/ajax.php b/ajax+json/ajax.php index 53e13c3..869f071 100644 --- a/ajax+json/ajax.php +++ b/ajax+json/ajax.php @@ -14,8 +14,9 @@ class dummy extends c_xmlify protected $var1; protected $var2; protected $var3; + protected $var4; - function __construct ($xr = NULL, $v1, $v2, $v3) + function __construct ($xr = NULL, $v1, $v2, $v3, $v4) { if ($xr !== NULL) parent::__construct ($xr); @@ -23,11 +24,13 @@ class dummy extends c_xmlify $this->var1 = $v1; $this->var2 = $v2; $this->var3 = $v3; + $this->var4 = $v4; } }; $_data = new dummy ( - NULL, array ('var1'=>0.53, 'var2'=>1.1), array (12, 13), "Hallo"); + NULL, array ('var1'=>0.53, 'var2'=>1.1), array (12, 13), "Hallo", + new dummy (NULL, "Das", "ist", "ein", "test")); //$_data = array (array ('var1'=>0.53, 'var2'=>1.1), array (12, 13), "Hallo"); diff --git a/js/callbacks.js b/js/callbacks.js new file mode 100644 index 0000000..52bfc94 --- /dev/null +++ b/js/callbacks.js @@ -0,0 +1,21 @@ +if (typeof (nBildertool) === 'undefined') + nBildertool = {}; + +nBildertool.cbCommon = function () +{ + switch (nBildertool.req.readyState) + { + case 4: + if (nBildertool.req.status != 200) + alert ("Fehler:" + nBildertool.req.status); + else + { + data = nBildertool.deXmlify (nBildertool.req.responseXML); + console.dir (data); + } + return true; + + default: + return false; + } +} diff --git a/js/helper.js b/js/helper.js index 19ac7ba..9e4152e 100644 --- a/js/helper.js +++ b/js/helper.js @@ -1,4 +1,7 @@ -function extend (subClass, baseClass) +if (typeof (nBildertool) === 'undefined') + nBildertool = {}; + +nBildertool.extend = function (subClass, baseClass) { function inheritance() {} inheritance.prototype = baseClass.prototype; diff --git a/js/service.js b/js/service.js new file mode 100644 index 0000000..bfcbca1 --- /dev/null +++ b/js/service.js @@ -0,0 +1,48 @@ +if (typeof (nBildertool) === 'undefined') + nBildertool = {}; + +nBildertool.req = null; + +nBildertool.service = function (url, callback) +{ + // erstellen des requests + + try + { + nBildertool.req = new XMLHttpRequest(); + } + catch (e) + { + try + { + nBildertool.req = new ActiveXObject("Msxml2.XMLHTTP"); + } + catch (e) + { + try + { + nBildertool.req = new ActiveXObject("Microsoft.XMLHTTP"); + } + catch (failed) + { + nBildertool.req = null; + } + } + } + + if (nBildertool.req == null) + alert("Error creating request object!"); + + nBildertool.req.open("GET", url, true); + + // Beim abschliessen des request wird diese Funktion ausgeführt + if (typeof (callback) === 'undefined') + nBildertool.req.onreadystatechange = nBildertool.cbCommon; + else + nBildertool.req.onreadystatechange = callback; + + nBildertool.req.setRequestHeader("Content-Type", + "application/x-www-form-urlencoded"); + + nBildertool.req.send(null); +} diff --git a/js/xmlify.js b/js/xmlify.js index 31fd4e3..fde3a53 100644 --- a/js/xmlify.js +++ b/js/xmlify.js @@ -1,4 +1,7 @@ -function xmlToVar (data) +if (typeof (nBildertool) === 'undefined') + nBildertool = {}; + +nBildertool.xmlToVar = function (data) { if (!data.hasChildNodes ()) return null; @@ -25,7 +28,7 @@ function xmlToVar (data) return ret; } -function xmlToObjectArray (data) +nBildertool.xmlToObjectArray = function (data) { var ret = new Array (); @@ -43,16 +46,16 @@ function xmlToObjectArray (data) switch (child.nodeName) { case 'variable': - ret[name] = xmlToVar (child); break; + ret[name] = nBildertool.xmlToVar (child); break; case 'array': - ret[name] = xmlToArray (child); break; + ret[name] = nBildertool.xmlToArray (child); break; case 'class': var cName = child.getAttribute ('class'); if (typeof (eval (cName)) === 'function') ret[name] = eval ("new " + cName + "(child)"); else - ret[name] = xmlToObjectArray (child); + ret[name] = nBildertool.xmlToObjectArray (child); } } } @@ -60,7 +63,7 @@ function xmlToObjectArray (data) return ret; } -function xmlToArray (data) +nBildertool.xmlToArray = function (data) { var ret = new Array (); @@ -84,16 +87,16 @@ function xmlToArray (data) switch (_child.nodeName) { case 'variable': - ret[key] = xmlToVar (_child); break; + ret[key] = nBildertool.xmlToVar (_child); break; case 'array': - ret[key] = xmlToArray (_child); break; + ret[key] = nBildertool.xmlToArray (_child); break; case 'class': var cName = child.getAttribute ('class'); if (typeof (eval (cName)) === 'function') ret[key] = eval ("new " + cName + "(child)"); else - ret[key] = xmlToObjectArray (child); + ret[key] = nBildertool.xmlToObjectArray (child); } } } @@ -103,7 +106,7 @@ function xmlToArray (data) return ret; } -function c_xmlify (data) +nBildertool.c_xmlify = function (data) { if (! data.hasChildNodes ()) return; @@ -121,23 +124,23 @@ function c_xmlify (data) switch (child.nodeName) { case 'variable': - this[name] = xmlToVar (child); break; + this[name] = nBildertool.xmlToVar (child); break; case 'array': - this[name] = xmlToArray (child); break; + this[name] = nBildertool.xmlToArray (child); break; case 'class': var cName = child.getAttribute ('class'); if (typeof (eval (cName)) === 'function') this[name] = eval ("new " + cName + "(child)"); else - this[name] = xmlToObjectArray (child); + this[name] = nBildertool.xmlToObjectArray (child); } } } } } -function deXmlify (data) +nBildertool.deXmlify = function (data) { var ret = null; var child = data.firstChild; @@ -145,16 +148,16 @@ function deXmlify (data) switch (child.nodeName) { case 'variable': - ret = xmlToVar (child); break; + ret = nBildertool.xmlToVar (child); break; case 'array': - ret = xmlToArray (child); break; + ret = nBildertool.xmlToArray (child); break; case 'class': var cName = child.getAttribute ('class'); if (typeof (eval (cName)) === 'function') ret = eval ("new " + cName + "(child)"); else - ret = xmlToObjectArray (child); + ret = nBildertool.xmlToObjectArray (child); } return ret; diff --git a/testxmlify.html b/testxmlify.html index 3973d03..0dbdf65 100644 --- a/testxmlify.html +++ b/testxmlify.html @@ -7,12 +7,11 @@ + + @@ -92,7 +29,8 @@