XMLHttpRequest remplacer fonction alert()
laurent35000
-
laurent35000 -
laurent35000 -
Bonjour,
J'ai une fonction GetArticle me permettant de récupérer du contenu html avec XMLHttpRequest.
J'ai un soucis, elle ne fonctionne qu'en insérant un alert() avant le return. Sans le alert(), la variable retournée est "Undefined"...
Quelqu'un aurait-il une solution pour remplacer alert() par une fonction invisible? (qui n'affiche pas de boite de dialogue)
Ou alors une explication sur le pourquoi du besoin de la fonction alert() (j'ai dû faire une erreur de conception de GetArticle())?
[code]
function GetArticle() {
var Ou;
var req = null;
// Création de l'objet
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {}
}
}
// Sur changement d'etat
req.onreadystatechange = function()
{
if(req.readyState == 4)
{
// Pour débug...
//alert( req.responseText );
Ou = req.responseText;
//alert(Ou);
}
};
req.open("GET", "./tmp/source/dragable-boxes/article.html" , true);
req.send(null);
alert(Ou);
return Ou;
}
/code
Merci!
A+
Laurent
J'ai une fonction GetArticle me permettant de récupérer du contenu html avec XMLHttpRequest.
J'ai un soucis, elle ne fonctionne qu'en insérant un alert() avant le return. Sans le alert(), la variable retournée est "Undefined"...
Quelqu'un aurait-il une solution pour remplacer alert() par une fonction invisible? (qui n'affiche pas de boite de dialogue)
Ou alors une explication sur le pourquoi du besoin de la fonction alert() (j'ai dû faire une erreur de conception de GetArticle())?
[code]
function GetArticle() {
var Ou;
var req = null;
// Création de l'objet
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {}
}
}
// Sur changement d'etat
req.onreadystatechange = function()
{
if(req.readyState == 4)
{
// Pour débug...
//alert( req.responseText );
Ou = req.responseText;
//alert(Ou);
}
};
req.open("GET", "./tmp/source/dragable-boxes/article.html" , true);
req.send(null);
alert(Ou);
return Ou;
}
/code
Merci!
A+
Laurent
A voir également:
- XMLHttpRequest remplacer fonction alert()
- Fonction si et - Guide
- Fonction remplacer sur word - Guide
- Remplacer disque dur par ssd - Guide
- Remplacer coco - Accueil - Réseaux sociaux
- Fonction miroir - Guide
8 réponses
il te manque la verif si tout est bien arrivé :
// Sur changement d'etat
req.onreadystatechange = function()
{
if (http_request.readyState == 4) {
if (http_request.status == 200) {
// Pour débug...
//alert( req.responseText );
Ou = req.responseText;
//alert(Ou);
}
}
};
Merci pour ta réponse,
J'ai fait la modif, mais j'ai un "Undefined" en return.
Je dois toujours avoir une erreur dans ma requête...
J'ai fait la modif, mais j'ai un "Undefined" en return.
Je dois toujours avoir une erreur dans ma requête...
function GetArticle() {
var Ou;
var req = null;
// Création de l'objet
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {}
}
}
// Sur changement d'etat
req.onreadystatechange = function()
{
if(req.readyState == 4)
{
if (req.status == 200) {
// Pour débug...
/*alert( req.responseText );*/
Ou = req.responseText;
/*alert(Ou);*/
}
}
};
req.open("GET", "article.html" , true);
req.send(null);
/*Ou = "<div> test article test article </div>";*/
//alert(Ou);
return Ou;
}
pourqoui mets tu :
return Ou;
à la fin de ta fonction
Ou est chargé à la réponse donc c'est pas bon en fin de fonction creation requette
il faut faire écrire dans un div par exemple la reponse dans la partie fonction traitement réponse
qq part dans ta page tu mets:
et tu rajoutes dans ta fonction:
return Ou;
à la fin de ta fonction
Ou est chargé à la réponse donc c'est pas bon en fin de fonction creation requette
il faut faire écrire dans un div par exemple la reponse dans la partie fonction traitement réponse
qq part dans ta page tu mets:
<div id="reponse"></div>
et tu rajoutes dans ta fonction:
// Sur changement d'etat
req.onreadystatechange = function()
{
if(req.readyState == 4)
{
if (req.status == 200) {
// Pour débug...
/*alert( req.responseText );*/
Ou = req.responseText;
document.getElementById('reponse').innerHTML=Ou;
/*alert(Ou);*/
}
Ok! Merci pour ta réponse.
Je viens de comprendre mon problème.
Je pensais que ma variable "Ou" n'était pas initialisée correctement mais en fait elle l'est trop tard.
Je réutilise le résultat de GetArticle dans une autre fonction javascript.
Cette fonction doit donc prendre la valeur de DisplayArticle trop tôt.
En fait j'ai ceci:
function initDragableBoxesScript()
{
GetArticle();
createDefaultBoxes();
}
Ma fonction createDefaultBoxes() a besoin du résultat de GetArticle. Comment puis-je faire pour être sûr que createDefaultBoxes attende le retour de GetArticle(requête XMLHttpRequest)?
Cela fonctionnerait-il avec un flag mis à 1 en confirmation de retour de la requete et un if testant ce flag comme condition de l'execution de createDefaultBoxes?
Merci!
Laurent
Je viens de comprendre mon problème.
Je pensais que ma variable "Ou" n'était pas initialisée correctement mais en fait elle l'est trop tard.
Je réutilise le résultat de GetArticle dans une autre fonction javascript.
Cette fonction doit donc prendre la valeur de DisplayArticle trop tôt.
En fait j'ai ceci:
function initDragableBoxesScript()
{
GetArticle();
createDefaultBoxes();
}
Ma fonction createDefaultBoxes() a besoin du résultat de GetArticle. Comment puis-je faire pour être sûr que createDefaultBoxes attende le retour de GetArticle(requête XMLHttpRequest)?
Cela fonctionnerait-il avec un flag mis à 1 en confirmation de retour de la requete et un if testant ce flag comme condition de l'execution de createDefaultBoxes?
Merci!
Laurent
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
et si tu mets ta variable Ou en global
c a d la declarer en dehors des fonctions
car je ne vois pas comment passer cette variable de la fonction qui traite la réponse à la fonction appelante
c a d la declarer en dehors des fonctions
var Ou;
function GetArticle() {
etc...
car je ne vois pas comment passer cette variable de la fonction qui traite la réponse à la fonction appelante
Je viens d'essayer en déclarant ma variable en locale et cela ne fonctionne pas.
En fait j'ai l'impression que ma fonction createDefaultBoxes utilise ma variable "Ou" avant qu'elle soit initialiser par GetArticle.
Le seul moment où cela fonctionne est lorsque je met un alert dans Get Article()...
En fait j'ai l'impression que ma fonction createDefaultBoxes utilise ma variable "Ou" avant qu'elle soit initialiser par GetArticle.
Le seul moment où cela fonctionne est lorsque je met un alert dans Get Article()...
var art_content;
function initDragableBoxesScript()
{
GetArticle();
createDefaultBoxes(); // Create default boxes.
}
function createDefaultBoxes()
{
var htmlContentOfNewBox = art_content; // HTML content of new box
var titleOfNewBox = 'Test title';
if(!staticObjectArray['staticObject3']){
var newIndex = createABox(1,100,false,'staticObject3');
document.getElementById('dragableBoxContent' + newIndex).innerHTML = htmlContentOfNewBox;
document.getElementById('dragableBoxHeader_txt' + newIndex).innerHTML = titleOfNewBox;
}else{
document.getElementById('dragableBoxContent' + staticObjectArray['staticObject3']).innerHTML = htmlContentOfNewBox;
document.getElementById('dragableBoxHeader_txt' + staticObjectArray['staticObject3']).innerHTML = titleOfNewBox;
}
hideHeaderOptionsForStaticBoxes(staticObjectArray['staticObject3']);
}
function GetArticle() {
var req = null;
// Création de l'objet
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {}
}
}
// Sur changement d'etat
req.onreadystatechange = function()
{
if(req.readyState == 4)
{
art_content = req.responseText;
}
};
req.open("GET", "article.html" , true);
req.send(null);
alert(art_content);
}
window.onload = initDragableBoxesScript;