Showing
2 changed files
with
134 additions
and
80 deletions
1 | 1 | <?php |
2 | 2 | |
3 | -// $english = mysql_escape_string($_REQUEST['translate']); | |
4 | -// Der Service ist zur Zeit leider deaktiviert.... | |
5 | -// $trans = new SoapClient( | |
6 | -// "http://www.xmethods.net/sd/2001/BabelFishService.wsdl"); | |
7 | - | |
8 | -/* | |
9 | - try | |
10 | - { | |
11 | - $german = $trans->BabelFish("en_de",$english); | |
12 | - $french = $trans->BabelFish("en_fr",$english); | |
13 | - } | |
14 | - catch(SoapFault $e) | |
15 | - { | |
16 | - $english = "not found"; | |
17 | - $german = "not found"; | |
18 | - $french = "not found"; | |
19 | - } | |
20 | -*/ | |
21 | - class dummy | |
22 | - { | |
23 | - // nur public member werden via json verschickt. | |
24 | - public $german; | |
25 | - public $english; | |
26 | - public $french; | |
27 | - | |
28 | - function __construct ($english, $german, $french) | |
29 | - { | |
30 | - $this->german = $german; | |
31 | - $this->english = $english; | |
32 | - $this->french["val1"] = $french; | |
33 | - $this->french["val2"] = "jokus"; | |
34 | - } | |
35 | - } | |
36 | - | |
37 | - $encoding = FALSE; | |
38 | - if (isset ($_SERVER['HTTP_ACCEPT_ENCODING']) && | |
39 | - strpos ($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== FALSE) | |
40 | - $encoding = "x-gzip"; | |
41 | - if (isset ($_SERVER['HTTP_ACCEPT_ENCODING']) && | |
42 | - strpos ($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) | |
43 | - $encoding = "gzip"; | |
44 | - | |
45 | - header ('Content-type: text/plain'); | |
46 | - | |
47 | - $result = FALSE; | |
48 | - if ($encoding !== FALSE) | |
49 | - $result = gzcompress (json_encode (new dummy ( | |
50 | - 'doing gzip', 'gezipedte Daten', 'la zippo'))); | |
51 | - | |
52 | - if ($result !== FALSE) | |
53 | - { | |
54 | - header ('Content-Encoding: ' . $encoding); | |
55 | - | |
56 | - print ("\x1f\x8b\x08\x00\x00\x00\x00\x00"); | |
57 | - print ($result); | |
58 | - } | |
59 | - else | |
60 | - { | |
61 | - $result = json_encode (new dummy ( | |
62 | - 'doing no gzip', 'nicht gezipedte Daten', 'no la zippo')); | |
63 | - | |
64 | - print ($result); | |
65 | - } | |
3 | +require_once dirname(__FILE__) . '/../config.php'; | |
4 | +require_once LIBDIR . 'c_personAdmin.php'; | |
5 | +require_once LIBDIR . 'c_xmlify.php'; | |
6 | + | |
7 | +$personAdmin = new c_personAdmin (); | |
8 | +$persons = xmlify ($personAdmin->getPersons ()); | |
9 | +$p = deXmlify ($persons); | |
10 | + | |
11 | +exit (1); | |
12 | + | |
13 | +$encoding = FALSE; | |
14 | +if (isset ($_SERVER['HTTP_ACCEPT_ENCODING']) && | |
15 | + strpos ($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== FALSE) | |
16 | +$encoding = "x-gzip"; | |
17 | +if (isset ($_SERVER['HTTP_ACCEPT_ENCODING']) && | |
18 | + strpos ($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) | |
19 | +$encoding = "gzip"; | |
20 | + | |
21 | +header ('Content-type: text/xml'); | |
22 | + | |
23 | +$result = FALSE; | |
24 | +if ($encoding !== FALSE) | |
25 | + $result = gzcompress ($persons); | |
26 | + | |
27 | +if ($result !== FALSE) | |
28 | +{ | |
29 | + header ('Content-Encoding: ' . $encoding); | |
30 | + | |
31 | + print ("\x1f\x8b\x08\x00\x00\x00\x00\x00"); | |
32 | + print ($result); | |
33 | +} | |
34 | +else | |
35 | + print ($persons); | |
66 | 36 | |
67 | 37 | ?> | ... | ... |
... | ... | @@ -7,9 +7,72 @@ |
7 | 7 | |
8 | 8 | <script type="text/javascript"> |
9 | 9 | <!-- |
10 | + function xmlToArray (xr) | |
11 | + { | |
12 | + ret = new Array (); | |
13 | + | |
14 | + if (! xr.hasChildNodes ()) | |
15 | + return ret; | |
16 | + | |
17 | + for (node in xr.childNodes) | |
18 | + { | |
19 | + if (node.nodeType == 1 && | |
20 | + node.name == 'item') | |
21 | + { | |
22 | + key = childNode->getAttribute ('key'); | |
23 | + if (parseInt (key, 10) !== NaN) | |
24 | + key = parseInt (key, 10); | |
25 | + | |
26 | + for (_node in node.childNodes) | |
27 | + { | |
28 | + if (_node->nodeType == 1) | |
29 | + { | |
30 | + switch (_node->nodeName) | |
31 | + { | |
32 | + case 'variable': | |
33 | + ret[key] = xmlToVar (_node); | |
34 | + type = _node->getAttribute ('type'); | |
35 | + //settype (ret[key], type); | |
36 | + break; | |
37 | + | |
38 | + case 'array': | |
39 | + ret[key] = xmlToArray (_node); | |
40 | + break; | |
41 | + | |
42 | + case 'class': | |
43 | + _class = _node->getAttribute ('class'); | |
44 | + eval ('ret[key] = new ' + _class + '(_node)'); | |
45 | + } | |
46 | + } | |
47 | + } | |
48 | + } | |
49 | + } | |
50 | + | |
51 | + return ret; | |
52 | + } | |
53 | + | |
54 | + | |
55 | + function xmlToVar (xr) | |
56 | + { | |
57 | + if (!xr.hasChildNodes ()) | |
58 | + return null; | |
59 | + | |
60 | + var ret = null; | |
61 | + | |
62 | + for (node in xr.childNodes) | |
63 | + if (node.nodeType === 3 && node.nodeValue !== null) | |
64 | + { | |
65 | + ret = node.nodeValue; | |
66 | + break; | |
67 | + } | |
68 | + | |
69 | + return ret; | |
70 | + } | |
71 | + | |
72 | + | |
10 | 73 | var req = null; |
11 | 74 | |
12 | - function handleTranslation () | |
75 | + function getPersons () | |
13 | 76 | { |
14 | 77 | switch (req.readyState) |
15 | 78 | { |
... | ... | @@ -18,16 +81,38 @@ |
18 | 81 | alert("Fehler:"+req.status); |
19 | 82 | else |
20 | 83 | { |
21 | - // felder des formulars | |
22 | - german_field = document.getElementById("german"); | |
23 | - french_field = document.getElementById("french"); | |
24 | - | |
84 | + //for (x in req.responseXML) | |
85 | + //{ | |
86 | + // console.dir (x); | |
87 | + // break; | |
88 | + // } | |
89 | + data = req.responseXML.firstChild; | |
90 | + | |
91 | + //console.dir (data); | |
92 | + switch (data.nodeName) | |
93 | + { | |
94 | + case 'variable': ret = xmlToVar (data); break; | |
95 | + //case 'array': ret = xmlToArray (data); break; | |
96 | + //case 'class': ret = xmlToObject (data); | |
97 | + } | |
98 | + | |
99 | + console.log ('%s', ret); | |
100 | + | |
101 | + // ---- | |
102 | + //german_resp = xml.getElementsByTagName("german")[0]; | |
103 | + //french_resp = xml.getElementsByTagName("french")[0]; | |
104 | + | |
105 | + //schreiben des ergebnisses | |
106 | + //german_field.value = german_resp.firstChild.nodeValue; | |
107 | + //french_field.value = french_resp.firstChild.nodeValue; | |
108 | + // ---- | |
109 | + | |
25 | 110 | // antwort des servers |
26 | - var translation = eval('(' + req.responseText + ')'); | |
111 | + //var translation = eval('(' + req.responseText + ')'); | |
27 | 112 | |
28 | 113 | // schreiben des ergebnisses |
29 | - german_field.value = translation.german; | |
30 | - french_field.value = translation.french.val1; | |
114 | + //german_field.value = translation.german; | |
115 | + //french_field.value = translation.french.val1; | |
31 | 116 | } |
32 | 117 | return true; |
33 | 118 | |
... | ... | @@ -36,7 +121,7 @@ |
36 | 121 | } |
37 | 122 | } |
38 | 123 | |
39 | - function translate () | |
124 | + function updPersons () | |
40 | 125 | { |
41 | 126 | // erstellen des requests |
42 | 127 | |
... | ... | @@ -68,13 +153,12 @@ |
68 | 153 | |
69 | 154 | // anfrage erstellen (GET, url ist localhost, |
70 | 155 | // request ist asynchron |
71 | - var url = 'http://muedv031/~georg/bilder/ajax+json/ajax.php' + | |
72 | - '?translate=' + document.getElementById ('myword').value; | |
156 | + var url = 'http://localhost/~georg/bilder/ajax+json/ajax.php'; | |
73 | 157 | |
74 | 158 | req.open("GET", url, true); |
75 | 159 | |
76 | 160 | // Beim abschliessen des request wird diese Funktion ausgeführt |
77 | - req.onreadystatechange = handleTranslation; | |
161 | + req.onreadystatechange = getPersons; | |
78 | 162 | |
79 | 163 | req.setRequestHeader("Content-Type", |
80 | 164 | "application/x-www-form-urlencoded"); |
... | ... | @@ -87,11 +171,11 @@ |
87 | 171 | </head> |
88 | 172 | |
89 | 173 | <body> |
90 | - <div id="eins" style="width: 80%; height: 80%; border: dashed 1px;"> | |
91 | - englisch: <input type="text" id="myword" onchange="translate();" /> | |
92 | - <br /> | |
93 | - deutsch: <input type="text" id="german" /><br /> | |
94 | - französisch: <input type="text" id="french" /><br /> | |
174 | + <div id="eins" style="width: 600px; height: 450px; border: dashed 1px;"> | |
175 | + dummy: <input type="text" id="myword" onchange="updPersons ();" /> | |
176 | + <p id="persons"> | |
177 | + Hier koennen personen stehen.... | |
178 | + </p> | |
95 | 179 | </div> |
96 | 180 | </body> |
97 | 181 | </html> | ... | ... |
Please
register
or
login
to post a comment