Georg Hopp 18 years ago
parent
commit
85e52dfcef
  1. 96
      ajax+json/ajax.php
  2. 116
      ajax+json/test1.html

96
ajax+json/ajax.php

@ -1,67 +1,37 @@
<?php <?php
// $english = mysql_escape_string($_REQUEST['translate']);
// Der Service ist zur Zeit leider deaktiviert....
// $trans = new SoapClient(
// "http://www.xmethods.net/sd/2001/BabelFishService.wsdl");
/*
try
{
$german = $trans->BabelFish("en_de",$english);
$french = $trans->BabelFish("en_fr",$english);
}
catch(SoapFault $e)
{
$english = "not found";
$german = "not found";
$french = "not found";
}
*/
class dummy
{
// nur public member werden via json verschickt.
public $german;
public $english;
public $french;
function __construct ($english, $german, $french)
{
$this->german = $german;
$this->english = $english;
$this->french["val1"] = $french;
$this->french["val2"] = "jokus";
}
}
$encoding = FALSE;
if (isset ($_SERVER['HTTP_ACCEPT_ENCODING']) &&
strpos ($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== FALSE)
$encoding = "x-gzip";
if (isset ($_SERVER['HTTP_ACCEPT_ENCODING']) &&
strpos ($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE)
$encoding = "gzip";
header ('Content-type: text/plain');
$result = FALSE;
if ($encoding !== FALSE)
$result = gzcompress (json_encode (new dummy (
'doing gzip', 'gezipedte Daten', 'la zippo')));
if ($result !== FALSE)
{
header ('Content-Encoding: ' . $encoding);
print ("\x1f\x8b\x08\x00\x00\x00\x00\x00");
print ($result);
}
else
{
$result = json_encode (new dummy (
'doing no gzip', 'nicht gezipedte Daten', 'no la zippo'));
print ($result);
}
require_once dirname(__FILE__) . '/../config.php';
require_once LIBDIR . 'c_personAdmin.php';
require_once LIBDIR . 'c_xmlify.php';
$personAdmin = new c_personAdmin ();
$persons = xmlify ($personAdmin->getPersons ());
$p = deXmlify ($persons);
exit (1);
$encoding = FALSE;
if (isset ($_SERVER['HTTP_ACCEPT_ENCODING']) &&
strpos ($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== FALSE)
$encoding = "x-gzip";
if (isset ($_SERVER['HTTP_ACCEPT_ENCODING']) &&
strpos ($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE)
$encoding = "gzip";
header ('Content-type: text/xml');
$result = FALSE;
if ($encoding !== FALSE)
$result = gzcompress ($persons);
if ($result !== FALSE)
{
header ('Content-Encoding: ' . $encoding);
print ("\x1f\x8b\x08\x00\x00\x00\x00\x00");
print ($result);
}
else
print ($persons);
?> ?>

116
ajax+json/test1.html

@ -7,9 +7,72 @@
<script type="text/javascript"> <script type="text/javascript">
<!-- <!--
function xmlToArray (xr)
{
ret = new Array ();
if (! xr.hasChildNodes ())
return ret;
for (node in xr.childNodes)
{
if (node.nodeType == 1 &&
node.name == 'item')
{
key = childNode->getAttribute ('key');
if (parseInt (key, 10) !== NaN)
key = parseInt (key, 10);
for (_node in node.childNodes)
{
if (_node->nodeType == 1)
{
switch (_node->nodeName)
{
case 'variable':
ret[key] = xmlToVar (_node);
type = _node->getAttribute ('type');
//settype (ret[key], type);
break;
case 'array':
ret[key] = xmlToArray (_node);
break;
case 'class':
_class = _node->getAttribute ('class');
eval ('ret[key] = new ' + _class + '(_node)');
}
}
}
}
}
return ret;
}
function xmlToVar (xr)
{
if (!xr.hasChildNodes ())
return null;
var ret = null;
for (node in xr.childNodes)
if (node.nodeType === 3 && node.nodeValue !== null)
{
ret = node.nodeValue;
break;
}
return ret;
}
var req = null; var req = null;
function handleTranslation ()
function getPersons ()
{ {
switch (req.readyState) switch (req.readyState)
{ {
@ -18,16 +81,38 @@
alert("Fehler:"+req.status); alert("Fehler:"+req.status);
else else
{ {
// felder des formulars
german_field = document.getElementById("german");
french_field = document.getElementById("french");
//for (x in req.responseXML)
//{
// console.dir (x);
// break;
// }
data = req.responseXML.firstChild;
//console.dir (data);
switch (data.nodeName)
{
case 'variable': ret = xmlToVar (data); break;
//case 'array': ret = xmlToArray (data); break;
//case 'class': ret = xmlToObject (data);
}
console.log ('%s', ret);
// ----
//german_resp = xml.getElementsByTagName("german")[0];
//french_resp = xml.getElementsByTagName("french")[0];
//schreiben des ergebnisses
//german_field.value = german_resp.firstChild.nodeValue;
//french_field.value = french_resp.firstChild.nodeValue;
// ----
// antwort des servers // antwort des servers
var translation = eval('(' + req.responseText + ')');
//var translation = eval('(' + req.responseText + ')');
// schreiben des ergebnisses // schreiben des ergebnisses
german_field.value = translation.german;
french_field.value = translation.french.val1;
//german_field.value = translation.german;
//french_field.value = translation.french.val1;
} }
return true; return true;
@ -36,7 +121,7 @@
} }
} }
function translate ()
function updPersons ()
{ {
// erstellen des requests // erstellen des requests
@ -68,13 +153,12 @@
// anfrage erstellen (GET, url ist localhost, // anfrage erstellen (GET, url ist localhost,
// request ist asynchron // request ist asynchron
var url = 'http://muedv031/~georg/bilder/ajax+json/ajax.php' +
'?translate=' + document.getElementById ('myword').value;
var url = 'http://localhost/~georg/bilder/ajax+json/ajax.php';
req.open("GET", url, true); req.open("GET", url, true);
// Beim abschliessen des request wird diese Funktion ausgeführt // Beim abschliessen des request wird diese Funktion ausgeführt
req.onreadystatechange = handleTranslation;
req.onreadystatechange = getPersons;
req.setRequestHeader("Content-Type", req.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded"); "application/x-www-form-urlencoded");
@ -87,11 +171,11 @@
</head> </head>
<body> <body>
<div id="eins" style="width: 80%; height: 80%; border: dashed 1px;">
englisch: <input type="text" id="myword" onchange="translate();" />
<br />
deutsch: <input type="text" id="german" /><br />
französisch: <input type="text" id="french" /><br />
<div id="eins" style="width: 600px; height: 450px; border: dashed 1px;">
dummy: <input type="text" id="myword" onchange="updPersons ();" />
<p id="persons">
Hier koennen personen stehen....
</p>
</div> </div>
</body> </body>
</html> </html>
Loading…
Cancel
Save