Tach!
Die Frage ist, wie bekomme ich mehrere Variablen aus Javascript zu php.
Variablen können zwischen zwei Systemen nicht ausgetauscht werden. Das ist nicht nur eine Spitzfindigkeit, sondern für das Verständnis essentiell. Man kann lediglich Werte, gegebenenfalls mit Metadaten wie Namen, auf den Transport schicken. Key-Value-Pärchen sind eine Möglichkeit, Serialisieren eine andere (besonders bei komplexen Strukturen).
Mit einem GET-Request: Querystring bauen (Escaping nicht vergessen) und an die URL hängen.
Mit einem POST-Request und nativen POST-Daten: Dokumentationen zu XMLHttpRequest lesen, wie da Key-Value-Pärchen übergeben werden.
Mit einem POST-Request und Serialisierung: JSON-String erzeugen und dann siehe vorhergehender Punkt.
<input type="text" name="chat" id="chat_text" size="23" onkeydown = "if (event.keyCode == 13) {document.getElementById('chatbutton').click()}"/> <button class="button" id="chatbutton" onclick="post_chat();" >Send</button>
Du baust dir mit dem onkeydown grade eine Funktionalität nach, die bereits gegeben ist, wenn du ein Formular nehmen würdest und den Button zum Submit-Button umfunktionierst. Das onclick fällt weg, dafür bekommt das Formular einen Eventhandler für das submit-Ereignis. Man muss nur das Absenden verhindern, was aber kein großartiges Problem ist.
var message = "chat=" + chat;
var message_destination = "chat_destination=" + chat_destination;
Escapen nicht vergessen! Andererseits kannst du auch eine Instanz von FormData an den XHR übergeben. FormData übergibt man das Formular und den Rest machen die beiden von selbst.
var post = new Array([message][textdestination]); //*1
Das ist zwar keine ungültige Syntax, aber ein nicht sehr sinnvolles Konstrukt.
Hier habe ich schon ein wenig probiert, führt aber noch nicht wirklich zum Ergebnis da ich nicht genau weiss wie ich das js Array in php aufnehme. *1 und *1.1 funktioniert das so?
Nein. Aber die Arbeitsweise des XHR ist in den Weiten des Internets bereits ausreichend oft mit Beispielen beschrieben.
Wie spreche ich bei *2 und *2.1 das Array-Element aus js an?
Gar nicht. Variablen von Javascript existeren in PHP nicht und kommen da auch nicht an, wie eingangs schon erwähnt. Du bekommst Werte übergeben. Und die nimmst du so entgegen, wie es üblich ist. Zur Not schaust du dir das $_POST-Array mit einer Kontrollausgabe an: var_dump($_POST)
dedlfix.