le 26/07/2013 à 23:00
Affichage dans une boucle while
Bonjour à tous,
je voudrais developer un chat avec une fenêtre de conversation unique pour chaque contact (dans un while en PHP). La gestion des input et out put se faisant en AJAX à l'instar de celui-ci, je l'ai trouvé sur le net.
Je réussi à récupérer et à insérer les données de la manière suivante :
J'aurais pu les afficher autrement, mais le refresh ne fonctionne pas.
Comment afficher les données correspondant à chaque contact ?
Si quelqu'un voit ce que je voudrais dire, votre aide me sera vraiment salvatrice.
Merci.
je voudrais developer un chat avec une fenêtre de conversation unique pour chaque contact (dans un while en PHP). La gestion des input et out put se faisant en AJAX à l'instar de celui-ci, je l'ai trouvé sur le net.
*** INPUT ***
function sendChatText() {
if(document.getElementById('txt_message').value == '') {
alert("You have not entered a message");
return;
}
if (sendReq.readyState == 4 || sendReq.readyState == 0) {
sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sendReq.onreadystatechange = handleSendChat;
var param = 'message=' + document.getElementById('txt_message').value;
param += '&name=Ryan Smith';
param += '&chat=1';
sendReq.send(param);
document.getElementById('txt_message').value = '';
}
}
*** OUT PUT ***
function handleReceiveChat() {
if (receiveReq.readyState == 4) {
var chat_div = document.getElementById('div_chat');
var xmldoc = receiveReq.responseXML;
var message_nodes = xmldoc.getElementsByTagName("message");
var n_messages = message_nodes.length
for (i = 0; i < n_messages; i++) {
var user_node = message_nodes[i].getElementsByTagName("user");
var text_node = message_nodes[i].getElementsByTagName("text");
var time_node = message_nodes[i].getElementsByTagName("time");
chat_div.innerHTML += user_node[0].firstChild.nodeValue + ' ';
chat_div.innerHTML += '<font class="chat_time">' + time_node[0].firstChild.nodeValue + '</font><br />';
chat_div.innerHTML += text_node[0].firstChild.nodeValue + '<br />';
chat_div.scrollTop = chat_div.scrollHeight;
lastMessage = (message_nodes[i].getAttribute('id'));
}
mTimer = setTimeout('getChatText();',2000); //Refresh our chat in 2 seconds
}
}
AFFICHAGE DANS LE <DIV> SUIVANT
<div id="div_chat"></div>
Je réussi à récupérer et à insérer les données de la manière suivante :
function sendChatText(id) {
if(document.getElementById('txt_message'+id).value == '') {
alert("You have not entered a message"+id);
return;
}
if (sendReq.readyState == 4 || sendReq.readyState == 0) {
sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sendReq.onreadystatechange = handleSendChat;
var param = 'message=' + document.getElementById('txt_message'+id).value;
param += '&name='+id;
param += '&chat=1';
sendReq.send(param);
document.getElementById('txt_message'+id).value = '';
}
}
<div id="div_chat+id"></div>
J'aurais pu les afficher autrement, mais le refresh ne fonctionne pas.
Comment afficher les données correspondant à chaque contact ?
Si quelqu'un voit ce que je voudrais dire, votre aide me sera vraiment salvatrice.
Merci.