Rolf B: Javascript Variablen von einer Website zur anderen bringen

Beitrag lesen

Hallo af2111,

der Begriff "Export von Variablen" ist hier nicht wirklich passend. Im Prinzip hast Du zwei getrennt voneinander arbeitende Systeme: Der Browser mit seinen eingebauten Fähigkeiten plus JavaScript, und der Webserver, auf dem beispielsweise PHP eingesetzt werden kann. Browser und Webserver kommunizieren nicht auf Variablen-Ebene miteinander, sondern schicken sich Nachrichten zu. Wie die aussehen, kann man selbst festlegen.

Die Kommunikation zwischen Browser und Webserver erfolgt im Normalfall über HTTP Anfragen, die vom Server beantwortet werden. Eine solche Anfrage ist auf eine URL gerichtet, zum Beispiel http://www.example.org/af2111/test.php. Auf dem Server muss dann eingestellt sein, dass der Abruf von test.php nicht einfach die Datei überträgt sondern das PHP-Script test.php aufruft.

Nun kann diese Server-Anfrage unterschiedlich formuliert sein. Das Wiki hat dazu Informationen. Es gibt GET-Anfragen, die auch der Browser macht wenn Du in der Adresszeile z.B. https://forum.selfhtml.org eingibst. Solche Anfragen können Daten nur in der URL transportieren, als Query-Parameter. Sowas siehst Du im Self-Wiki wenn Du z.B. eine Seitenhistorie aufrufst: https://wiki.selfhtml.org/index.php?title=Referenz:HTML/fieldset&action=history. Da wird eine index.php abgerufen, dann kommt ein Fragezeichen und dann folgen Parameter: title=Referenz:HTML/fieldset und action=history. Die Parameter sind durch ein & getrennt. Das ist HTTP-Standard, keine PHP Erfindung.

Der PHP Interpreter auf dem Webserver kennt das und stellt Dir in einer speziellen Variablen namens $_GET die GET-Parameter zur Verfügung. Du kannst also im PHP dann abfragen:

if ($_GET['action'] === 'history') {`
   $artikel = $_GET['title'];
   // history des Artikels anzeigen
}

Die Alternative sind POST-Anfragen, die dein Browser macht wenn Du Formulardaten übermittelst. Bei POST-Anfragen gibt es außer den URL-Parametern noch einen "Nutzlast"-Anteil der Nachricht, und den kannst Du nahezu beliebig gestalten. Eine häufige Gestalt ist das application/x-www-form-urlencoded Format; da sehen die Parameter genauso aus wie in der URL, aber man sieht sie nicht in der Browser-Adresszeile (und es gibt auch keine Längenbegrenzung wie in der URL).

D.h. wenn Du ein <form method='POST' action='dingsbums.php'> auf deiner Seite hast und darin den Submit-Button drückst, gelangen die im Form definierten Eingeabefelder mit einem POST-Request zum dingsbums.php und finden sich dort in der Variablen $_POST wieder, ähnlich wie eben beim GET.

Das PHP-Script, das auf dem Server läuft, kann die Daten dann verarbeiten und eine Antwort schicken. Entweder ein HTML-Fragment, das Du per Javascript in einen Container auf deiner Seite einsetzt, oder einfach nur Daten als XML-Dokument oder JSON-String (was das ist, steht in dem unten angegebenen Link zu Ajax). Dein JavaScript kann diese Antwort dann auseinandernehmen und die gefundenen Werte in Variablen speichern.

Das Gleiche geht aus JavaScript heraus mit den sogenannten Ajax-Techniken. Auch von dort aus kannst Du GET und POST Requests auslösen, oder auch die anderen HTTP-Methoden wie PUT oder DELETE nutzen. Andere Methoden als GET und POST solltest Du aber nur verwenden, wenn Du eine REST-Schnittstelle baust, da werden die HTTP Methodennamen ausführlich genutzt. Dazu habe ich leider keinen Artikel im Self-WIKI, aber in der Wikipedia steht was darüber.

Ajax ist eine häufig verwendete Methode, um aus JavaScript heraus mit dem Server zu kommunizieren, aber es litt sehr unter Browser-Inkompatibilitäten. Wenn Du nur aktuelle Browser berücksichtigst, kannst Du davon ausgehen, dass sie sich gleich verhalten, aber bei älteren Browsern muss man schon mal in den Kompatibilitätslisten stöbern, um zu wissen, ob etwas geht oder nicht.

Lies Dir mal durch, was im Wiki zu Ajax und der darauf aufbauenden Schnittstelle fetch steht.

Rolf

--
sumpsi - posui - clusi