Matt: AJAX - PHP Script neuladen

Hallo,

momentan löse ich mein kleines Portal so:
Ich habe diverse Tabellen die per Klick ein und ausgeblendet werden (bei Start - display:none). Die Ein- und Ausblendfunktion hat mit Javascript super funktioniert, allerdings wird hierbei nicht die Seite bzw. der jeweilige PHP Code (ist ein Include Befehl) neugeladen. Dies realisiere ich mittlerweile, indem ich PHP und Java kombiniere, allerdings wird hierbei immer die ganze Seite neugeladen -> Was ich nicht möchte.

Ich habe mir nun ein Einsteigerbuch in AJAX gekauft und verstehe nun, dass soetwas mit AJAX möglich ist, ein gewissen Teil des Codes neuzuladen ohne die Site aktualisieren zu müssen.
Dies würde ich gern in meinem kleinen Portal anwenden, allerdings fehlt mir hierzu jeder Ansatz.

Ich möchte einfach den "include('x.php');" per AJAX neuladen lassen, wie ist das genau möglich?

Regards,
Matt

  1. Hi,

    Dies realisiere ich mittlerweile, indem ich PHP und Java kombiniere,

    oh, krass. Und diese PHP/Java-Kombination willst Du dann per JavaScript ansprechen?

    Ich habe mir nun ein Einsteigerbuch in AJAX gekauft und verstehe nun, dass soetwas mit AJAX möglich ist, ein gewissen Teil des Codes neuzuladen ohne die Site aktualisieren zu müssen.

    Es ist mit AJAX möglich, eine URL anzufordern, die (z.B.) in einem Teil der Seite dargestellt wird, anstatt als komplette Seite.

    Ich möchte einfach den "include('x.php');" per AJAX neuladen lassen, wie ist das genau möglich?

    Das ist *nicht* möglich. JavaScript läuft clientseitig, d.h. für diese Technik existieren die Dateien Deines Servers nicht. Dein "x.php" muss in Form einer URL verfügbar sein.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi!

      Gibts da eigentlich im Netz eine (deutsche) Website über AJAX die besonders empfehlenswert ist?

      Marco

      1. n'abend,

        Gibts da eigentlich im Netz eine (deutsche) Website über AJAX die besonders empfehlenswert ist?

        AJAX wird überbewertet. Was stellst du dir denn unter AJAX vor? AJAX bedeutet nichts anderes als Asynchronous Javascript And XML. Du bedienst dich eines HTTP-Request Objekts, welches dir vom Browser zur Verfügung gestellt wurde. Mittels dieses Objekts schickst du eine Anfrage (Request) an deinen Webserver (rufst also eine bestimmte URL auf). Der Server schickt dir irgendwas auf deine Anfrage hin zurück. Ob das nun ein XML Dokument ist, ein bischen HTML, oder JSON (Javascript Object Notation), ist dabei irrelevant. Das was du zurückbekommen hast (die Response) kannst du dann weiterverarbeiten.

        Das, was bei AJAX die meiste Arbeit ausmacht, ist definitiv nicht die Anfrage zusammenzustückeln, sondern die Antwort sinnvoll zu verarbeiten. Meistens wird dies mithilfe des DOM gemacht.

        weiterhin schönen abend...

        --
        Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
      2. Lieber Marco,

        wenn Du schreibst, dass Du mit AJAX absolut keine Erfahrung hast, dann wäre ein erster Ansatz, in der Wikipedia den sehr gut gestalteten Artikel zu AJAX zu lesen. Jedenfalls hat mir der sehr geholfen, mich mit der technischen Grundlage für AJAX vertraut zu machen.

        AJAX ist nur ein Modewort für die Verwendung des von Winzigweich erfundenen XMLHttpRequest-Objektes, welches Du in Javascript zum Anfordern einer XML-Datei benutzen kannst, und welches auf Wunsch auch asynchron arbeitet. Vor der Existenz (genauer: breiten Unterstützung durch die Browser) von XMLHttpRequest behalf man sich mit unsichtbaren Frames, in die man serverseitig zusammengebastelte Javascripte lud, was fast dieselbe Funktionalität erfüllte (bis auf die XML Norm des Serveroutputs).

        Mein Vorschlag: Definiere ein spezielles AJAX-Anforderungen-Entgegennehm-Script in PHP, welches die nachzuladenden Inhalte in eine XML-Datei verpackt, die dann Dein Javascript wiederum verwerten kann. Dadurch sparst Du Dir ein include 'x.php', welches sowieso für diese Aufgabe nicht so sinnvoll ist.

        Ich könnte mir folgendes Szenario vorstellen:
        1. Script fordert für Tabelle 'xyz' den Inhalt an, um ihn dynamisch nachzureichen.
        2. XMLHttpRequest lautet ungefähr "http://www.example.com/scripts/xmlhttp.php?table=xyz&paramx=abcd"
        3. Dein AJAX-Beantworter erkennt anhand $_GET['table'], dass die Inhalte für Tabelle 'xyz' und nicht 'uvw' angefordert werden und stellt den HTML-Code zusammen, verpackt ihn in eine XML-Datei und sendet diese mit passenden Headern (unbedingt "content-type = text/xml; charset=utf-8" verwenden!) aus.
        4. Dein XMLHttpRequest-Objekt entnimmt der XML-Datei den HTML-Code für die Tabelle und hängt diesen in den DOM-Baum ein. Dazu eignet sich document.getElementById('xyz')...

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

    2. Hallo Cheatah,

      Dies realisiere ich mittlerweile, indem ich PHP und Java kombiniere,

      oh, krass. Und diese PHP/Java-Kombination willst Du dann per JavaScript ansprechen?

      Dieser Sarkasmus ist nicht angebracht. Ein Hinweis, dass Java etwas komplett anderes als JavaScript ist hätte völlig ausgereichtt.

      Schöne Grüße,

      Johannes