Bonjour, la fonction suivante est utilisée dans mon fichier pub.php . Dans pub.php il y a une publication et donc lorsque quelqu'un la commente, son commentaire est recupéré par la fonction envoi() qui l'envoie vers save.php pour etre enregistré dans la base... L'ENREGISTREMENT SE PASSE BIEN, sauf que:
1: la page pub.php est actualisée automatiquement après l'envoi du commentaire(ça me gene car, j'ai plutot pris Ajax au lieu de PHP parce que je ne voulais pas que la page s'actualise après un commentaire...EX:FACEBOOK, YAHOO)
2: après envoi du commentaire, ce meme commentaire est renvoyé dans l'url, et donc si mon url avant l'envoi du commentaire était:
"www.truc.com/pub.php" , après l'envoi du commentaire, elle devient :
"www.truc.com/pub.php?com=le commentaire qui vient d'être enregistré", sachant que "com" est le nom de l'attribut "name" du formulaire
3: qu'est qui ne va pas et comment arriver à enregistrer des commentaires sans que la page ne s'actualise..? EX: FACEBOOK, YAHOO...
voilà la fonction "envoi()":
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 function take_xhr() { 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 envoi(url, param, id) { if( document.getElementById(id).value != "" ){// on verifie le commantaire var xhr = take_xhr() ; xhr.onreadystatechange = function() { if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)){ alert("c'est bon")// C'est bon } }; xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(param) ; } else { alert("Votre saisie est invalide. \n elle n'a pas pu être enregistrée!") ; } }
Merci pour vos réponse, chers amis... je wait!
Partager