Bonjour,
Sur mon site OnPage, j'ai mis en place un chat.
On y accède on cliquant sur lien qui appelle une fonction affMessage() qui rend visible ou masque des div.
dans ce cas c'est le chat qui est affiché.
L'internaute clique sur une des photos disponibles sur le bord gauche et des messages (les messages en rapports avec la photo et les messages que l'utilisateur en cours écris) sont affichés dans un div.
Code:<div id='message'></div>
puis il y a un div pour répondre
Code:<textarea id="rep"></textarea>
Lorsque l'utilisateur réponds (donc qu'il a mis des informations dans le textarea, il clique sur le bouton répondre:
Code:<input type="button" value="répondre" onClick="repondre('<%=rs("Photo1")%>', document.getElementById('recup').value, document.getElementById('PM').value)">
le fichier reponse.asp enregistre la réponse dans une base de donnéesCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 function repondre(pho1, recup, PM){ var objxhr = xhr_connect() if (objxhr){ objxhr.onreadystatechange = function(){ if (objxhr.readyState == 4) { if (objxhr.status == 200) { //var retour = objxhr.responseText document.location = "indexRIE.asp?miseA=oui" + "&r=" + recup + "&PM=" + PM } } } } R = document.getElementById("rep") Rtext = encodeURIComponent(document.getElementById("rep").value) RID = encodeURIComponent(document.getElementById("recup").value) var str = "IDmembres="+RID+"&pho1="+pho1+"&Rtext="+Rtext objxhr.open("Post", "../reponse.asp") objxhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); objxhr.send(str) R.value = "" }
puis lorsque c'est terminé je recharge la même page avec des paramètres:
et je test miseA:Code:document.location = "indexRIE.asp?miseA=oui" + "&r=" + recup + "&PM=" + PM
la fontion loadFile permet de récupérer le contenu des messages et de les assigner au div ayant l'ID message:Code:
1
2
3
4
5
6
7
8 if miseA = "oui" then %> <script> affMessage(); PM = document.getElementById("PM").value recup = document.getElementById("recup").value loadFile("<%=PMa%>","<%=rs("ID")%>","<%=r%>"); </script><% end if
Ok, voici le fonctionnement général !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 function loadFile(arg, id, arg2) { recup = document.getElementById("recup") recup.value = arg2 PM = document.getElementById("PM") PM.value = arg var xhr = new XMLHttpRequest(); var value1 = encodeURIComponent(arg); var value2 = encodeURIComponent(id); var value3 = encodeURIComponent(arg2); xhr.open('GET', 'messagesXML.asp?param1=' + value1 + '&id=' + value2 + '&id2=' + value3); message = document.getElementById("message") xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { message.innerHTML = '<span>' + xhr.responseText + '</span>'; message.style.display = "block" } } xhr.send(null); }
Maintenant, j'ai le même problème qu'avec mon message précèdent : ça fonctionne sur chrome (enregistrement du message, puis rechargement dans le div ayant l'ID message).
Dans Internet Explorer le message est enregistré mais le div n'est pas mis à jour.......
J'arrive à le mettre à jours si je clique sur le bouton actualiser
Lâ idem, j'aimerai supprimer dans Internet Explorer ce bouton actualiserCode:
1
2
3
4
5
6
7
8
9 <script> function raf(){ location.reload(true) } </script> <input type="button" id="reac" value="actualiser" onClick="raf()">
J'ai mis les fonctions XMLhttpRequest dans le header, j'ai essayé avec l'envoi synchrone (false) ou asynchrone (true) mais je ne suis pas arrivé au résultat recherché (c'est à dire à la mise à jour du div (id="message").
merci d'avance pour vos réponses !