Ajax - Je ne m'y fait pas
| Auteurs | Messages |
|---|---|
| Page : 1 | |
| # Posté le 23/08/2009 à 21h25 | |
Rang: membre |
Salut à tous! J'ai un petit souci pour utiliser de l'ajax afin de réaliser une prévisualisation d'avant poste. Pour le moment j'ai réussi à faire en sorte que lorsque l'on clique sur un bouton "Prévisualisation" qu'un fichier .txt contenant le texte formaté avec le BBcode de la prévisualisation soit automatiquement créer. Le plus dur est fait me direz-vous, et bien non. Du moins, pas pour moi car je suis en mode galère pour faire en sorte que dans le même instant le contenu du fichier soit récupéré et afficher dans la page. Pour faire simple, voici déjà la page contenant l'ajax: Code: 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; } Voici le javascript qui crée le fichier: Code: function previsualisation() { message = document.getElementById("script_desc_longue").value; var xhr = getXMLHttpRequest(); xhr.open("POST", "ajax/previsualisation.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("msg="+message+""); } Et enfin, voici le contenu HTML: Code: <div align="center"> <FORM name="ajax" method="POST" action=""> <p> <textarea id="script_desc_longue" name="script_desc_longue" rows="10" cols="40"></textarea> <br /> <INPUT type="submit" value="Envoyer"> <INPUT type="button" value="Prévisualisation" onclick="previsualisation();"> </p> </FORM> </div> <div id="previsualisation"></div> Au début, je pensais utiliser ça mais sans succès. Code: xhr.open("GET", "ajax/previsualisation.txt", true); xhr.onreadystatechange=function() { if(xhr.readyState == 4) { document.getElementById("zone").innerHTML= xhr.responseText; } }; xhr.send(null); Voila voila, j'espère vraiment que quelqu'un saura m'aider car là je suis complétement perdu. J'ai l'impression d'avoir tout essayé. Merci par avance! Cµ0p1N
|
| # Posté le 25/08/2009 à 19h22 | |
Rang: membre |
Salut . Code: xhr=null; xhr=getXMLHttpRequest(); datas="msg="+message; sendReq(xhr,'ajax/previsualisation.php'); // function sendReq(objReq,file) { objReq.open('POST',file,true); objReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); objReq.onreadystatechange=treat_response; objReq.send(datas); } function treat_response() { if(xhr.readyState==4) { document.getElementById("zone").innerHTML= xhr.responseText; } } J'avoue je suis pas un spécialiste mais ça devrait marcher. Une fois j'ai cherché un bug javascript pendant 1 heure et ça venait de la déclaration de la variable (qui n'était pas globale): donc penser a ça aussi. J'espère que ça va marcher (mets des alert('ok'); a chaque étapes pour mieux voir ou se situe le bug. |
| # Posté le 26/08/2009 à 12h03 | |
Rang: membre |
Salut STC et merci de m'avoir répondu! En faite, entre temps j'ai trouvé la solution. J'ai opté pour ça: Code: function affiche_previsualisation(callback) { var xhr = getXMLHttpRequest(); message = encodeURIComponent(document.getElementById("script_desc_longue").value); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { callback(xhr.responseText); } }; xhr.open("POST", "ajax/previsualisation.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("msg="+message+""); } function readData(sData) { document.getElementById("previsualisation_corp").innerHTML = sData; document.getElementById('previsualisation').style.display="block"; } La page "previsualisation.php" applique mon BBcode au contenu du poste et toujours dans la même page j'utilise un simple echo. Voila :) Cµ0p1N
|
| Page : 1 | |
