Servus zusammen,
Ich bin jetzt seit 2 Tagen am rumprobieren und ich komme einfach nicht weiter. Jetzt funktioniert irgendwie nichts mehr und ich weiß einfach nicht warum, deshalb brauche ich euren Rat.
Zum testen hab ich mal die post Funktion und das Formular in eine test.php gepackt:
<form>
<select name="chat_destination" id="chat_destination">
<option value="chat">World Chat</option>
<option value="<?php echo "lang_ger"; ?>">d Chat</option>
<option value="<?php echo "lang_eng"; ?>">e Chat</option>
<option value="<?php echo "lang_swe"; ?>">s Chat</option>
<!-- Alliance, Friends-->
</select>
<input type="text" name="chat" id="chat_text" onkeydown = "if (event.keyCode == 13) {document.getElementById('chatbutton').click()}"/>
<button class="button" id="chatbutton" onclick="post_chat();" >Send</button>
</form>
<div id="status"></div>
<script language="JavaScript" type="text/javascript">
function post_chat()
{
var hr = new XMLHttpRequest();
var url = "test2.php";
var chat = document.getElementById("chat_text").value;
var chat_destination = document.getElementById("chat_destination").value;
var data = "chat="+chat+"&destination="+chat_destination;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if (hr.readyState == 4 && hr.status == 200)
{
document.getElementById("status").innerHTML = hr.responseText;
}
}
hr.send(data);
document.getElementById("chat_text").value = "";
document.getElementById("status").innerHTML = "processing...";
}
</script>
so um dann zu schauen was in test2.php ankommt, steht dort folgendes:
echo $_POST['chat'];//.$_POST['destination'];
Das sollte ja dann im div
mit der id Status rauskommen.
Nur erstens kommt nichts zurück und die Seite wird neu geladen.
Und die Console zeigt mir keinen Fehler an.
console.log(data);
gibt das aus was es soll, nämlich chat=teststring&destination=chat
, aber von php kommt nichts zurück. was mache ich falsch?
Und dnn noch eine Frage.
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
was macht diese Zeile? Müssen header = Content-type
und value = application/x-www-form-urlencoded
genau so gesetzt sein?
Ich Danke euch für eure Hilfe!
Gruß Jo
P.s Ja, ich muss das mit Sicherheit auch noch für Javascript richtig escapen aber ich bin immoment erstmal bei der grundsätzlichen Funktionlität.