11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour !

Voilà, je suis en train de créer ma propre chatroom basé sur PHP/SQL/Ajax (Pas de JQuery !).
Je possède déjà le script pour refresh la page des messages ainsi que des connectés. Cependant je ne possède pas celui de l'envoie des messages : Autrement dis de l'envoie du message. Niveau PHP, je serais le construire, mais niveau Ajax, je n'arrive pas loin.

J'ai cependant fait des recherches qui ont aboutit à ceci :

function getXMLHttpRequest() {
	var xhr = null;
	
	if (window.XMLHttpRequest || window.ActiveXObject) {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} else {
			xhr = new XMLHttpRequest(); 
		}
	} else {
		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
		return null;
	}
	
	return xhr;
}


function sendMessage(pseudo, message) {
	var sVar1 = encodeURIComponent(pseudo);
	var sVar2 = encodeURIComponent(message);
	
	var xhr = getXMLHttpRequest();
	
	xhr.open("GET", "SendMessage.php", true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send("variable1=" + sVar1 + "&variable2= " + sVar2);
}


Je comprend la plupart du code cependant : Je ne sais pas comment faire pour affecter la valeur d'un input de type texte directement dans le code javascript..

On m'a dis de faire ça : "Il faut que tu récupères la valeur de l'input ou du textarea qui sert à écrire le message et le passer en argument de la fonction."

En faisant des recherches, je suis tombé sur un sujet support sur le même sujet mais qui ne répondais pas à mes attentes.

Pourriez-vous m'aider ? Smiley ravi
en supposant que tu aies fait un form d'envoi du message :


<form id="poster" onsubmit="return catchSubmit();">
  <input type="text" id="message" name="message">
  <input type="hidden" id="nickname" name="nickname">
 <input type="submit">
</form>


alors ton JS qui fait le lien entre ton form et la fonction que tu as donné ressemblera à ça :


function catchSubmit() {
 // this à l'élément déclencheur de l'event ... le fomulaire donc
 sendMessage(this.nickname.value, this.message.value );
 this.message.value = '';
 return false;
}