Hi Ladys!
Letzte Zeit ist ja Ajax in aller Munde und ich habe an verschiedenen Stellen ja bereits darauf hingewiesen, dass ich das Getue darum durchaus *nicht* verstehen kann. In vielen Fällen kann man als Web- Entwickler gänzlich darauf verzichten, auch das vielbeschriebene Gefühl einer "homogenen" Weboberfläche ohne andauerndes Neuaufbauen der Seiten kann oft durch Layer realisiert werden, die erst bei einem bestimmten Ereignis eingeblendet werden und so beispielsweise einen Reiter realisieren.
Lange Rede, kurzer Sinn: Ich habe schon auf Iframe- Alternativen zurückgegriffen, als ich gar nicht wusste, dass es soetwas wie Ajax gibt, nun sehe ich die Zeit für gekommen, das Ganze iAjax (Iframe- Ajax) zu taufen und damit reich und berühmt zu werden (zumindest in den Kreisen, die diese Ajax- Alternative noch nicht kannten).
Hier ersteinmal der Code der Hauptseite:
<div style = "display:none;"> <!--unsichtbarer Layer-->
<script language = "javascript">
function iajax_ret(message){ //Rückgabefunktion, wird aufgerufen,
alert(message); //nachdem PHP Skript ausgeführt wurde
} //und übergibt deren "Rückgabewert"
function iajax(url){ //Lädt gewünschtes Skript in den IFrame
iajax_frame.location.href = url;
}
</script>
<iframe src = "" name = "iajax_frame">Iframes benötigt</iframe>
</div> <!--Ende d. unsichtbaren Layers-->
<!-- Beispielbutton, ruft bei einem Klick iajax() auf und übergibt das gewünschte Skript-->
<input type = "button" value = "Klick mich" onClick = "iajax('skript.php';">
An Stelle der Alert()- Box könnte natürlich auch via document.write oder innerHTML ein Text an einer beliebige Stelle der Webseite ausgegeben werden, beispielsweise auf einem Layer.
Wie folgt könnte nun der Code in einem Skript aussehen, das dynamisch Inhalt aus dem Hintergrund an die Hauptseite übergeben soll:
<?php
//Hier können beliebige PHP Funktionen stehen,
//Datenbankabfragen, Dateioperationen etc.
$test = "Dieser Text wurde von einem PHP- Skript ohne Neuladen generiert";
?>
<!--
diese Javascript- Funktion ruft die vorher beschriebene
Rückgabe- Funktion auf und übergibt den gewünschten
PHP- String.
-->
<script language = "javascript">
parent.iajax_ret("<?php echo $test; ?>"
</script>
So, vll. kann jemand damit etwas anfangen, ich denke, die Vorteile liegen auf der Hand: Dieses Javaskript ist deutlich leichter zu implementieren als die XMLRequest- Variante, deutlich kompatibler in Bezug auf verschiedene Browser und gerade für Anfänger sehr leicht nachzuvollziehen.
viel Spaß damit und guten morgen,
Barabbas