A voir également:
- XMLHttpRequest remplacer fonction alert()
- Alert php ✓ - Forum PHP
- Fr alert avis - Guide
- Remplacer disque dur par ssd - Guide
- Fonction si et - Guide
- Remplacer couleur illustrator ✓ - Forum Illustrator
8 réponses
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
5 juin 2009 à 17:07
5 juin 2009 à 17:07
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;
}
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
5 juin 2009 à 18:04
5 juin 2009 à 18:04
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
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
8 juin 2009 à 14:46
8 juin 2009 à 14:46
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;