Ich habe noch eine Frage zu AJAX.
ich habe mein Ajax Skript soweit zum laufen.
Jetzt möchte ich ein overlib (das Skript von Erik Bosrup)in die Rückgabe einbauen und bekomme immer eine Fehlermeldung vom Javascript object ist nicht definiert.
<DIV class=content>
<A onmouseover="return overlib('Clicking here does nothing!', CAPTION, 'Insert witty caption here...');"
onmouseout="return nd();" href="javascript:void(0);">navigational help</A>
</DIV>
Ich habe versucht diesen Code in die Variable
$name = 'testing';
zu implementieren. Klappt leider nicht. Kann mir vielleicht jemand helfen? Danke
Hier ist meine test.php
ich habe mein Ajax Skript soweit zum laufen.
Jetzt möchte ich ein overlib (das Skript von Erik Bosrup)in die Rückgabe einbauen und bekomme immer eine Fehlermeldung vom Javascript object ist nicht definiert.
<DIV class=content>
<A onmouseover="return overlib('Clicking here does nothing!', CAPTION, 'Insert witty caption here...');"
onmouseout="return nd();" href="javascript:void(0);">navigational help</A>
</DIV>
Ich habe versucht diesen Code in die Variable
$name = 'testing';
zu implementieren. Klappt leider nicht. Kann mir vielleicht jemand helfen? Danke
Hier ist meine test.php
PHP-Code:
header('Content-Type: text/xml; charset=utf-8'); // sorgt für die korrekte XML-Kodierung
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0'); // ist mal wieder wichtig wegen IE
// übermittelte Option auswerten
$option = $_POST['option'];
switch ($option) {
case 1:
$name = 'testing';
$alternate = "Kleinbuchstaben";
break;
}
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo "<formatname>\n";
echo " <newname name=\"".$name."\" />\n";
echo "</formatname>\n";
PHP-Code:
Und das ist die aufrufende html Seite:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ajax</title>
<script type="text/javascript">
<!--
var request = false;
// Request senden
function setRequest(id, option) {
// Request erzeugen
if (window.XMLHttpRequest) {
request = new XMLHttpRequest(); // Mozilla, Safari, Opera
} else if (window.ActiveXObject) {
try {
request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
} catch (e) {
try {
request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
} catch (e) {}
}
}
// überprüfen, ob Request erzeugt wurde
if (!request) {
alert("Kann keine XMLHTTP-Instanz erzeugen");
return false;
} else {
var url = "test.php";
// Name auslesen
var value = document.getElementById('source_'+id).innerHTML;
// Option auslesen
var infotext = document.getElementById('option_0'+option).innerHTML;
// Request öffnen
request.open('post', url, true);
// Requestheader senden
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
// Request senden
request.send("name="+value+"&option="+option);
// Request auswerten
request.onreadystatechange = function() {
interpretRequest(id, infotext);
};
}
}
// Request auswerten
function interpretRequest(id, infotext) {
switch (request.readyState) {
// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
case 4:
if (request.status != 200) {
alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
} else {
// Antwort des Servers -> als XML-Dokument
var xmlDoc = request.respon************ML;
// Name aus dem XML-Dokument herauslesen
var newname = xmlDoc.getElementsByTagName('newname')[0].getAttribute('name');
// Name aus dem XML-Dokument herauslesen
document.getElementById('source_'+id).innerHTML = newname;
// Name aus dem XML-Dokument herauslesen
var newname1 = xmlDoc.getElementsByTagName('newname1')[0].getAttribute('name1');
// Name aus dem XML-Dokument herauslesen
document.getElementById('source_'+id).innerHTML = newname1;
}
break;
default:
break;
}
}
// einem HTML-Tag ein Attribut anhängen
function addAttribute(object, nr) {
object.setAttribute('id', 'option_'+nr, 0);
}
//-->
</script>
<style type="text/css">
div.field01, div.field02 {
position: absolute;
top: 0px;
width: 100px;
border-left: 1px solid #000000;
text-align: center;
}
div.field01 {
left: 0px;
}
div.field02 {
left: 100px;
}
span {
cursor: pointer;
color: blue;
}
</style>
</head>
<body>
<div class="field01" id="source_01">Max</div>
<div class="field02"><span onmouseover="addAttribute(this, '01'); setRequest('01', 1)">Normal</span></div>
</div>
</body>
</html>
Kommentar