26-04-2007, 07:41 AM
J'avais déjà réalisé un script pour un mini objet ajax.
Ca peut toujours servir de référence.
Sinon, le xhr_object.onreadystatechange = function() me parait correct dans cette situation.
La plupart du temps, on voit du code du style
Dans l'exemple exposé, on a bien un traitement asynchrone (appel open et send) avec récupération et traitement des infos au retour (onreadystatechange = function()).Ca peut toujours servir de référence.
Sinon, le xhr_object.onreadystatechange = function() me parait correct dans cette situation.
La plupart du temps, on voit du code du style
Code PHP :
<?php
...
xhr_object.onreadystatechange = maFonction
...
Function maFonction(){
...
}
On fait juste un 'raccourci' en incluant directement le code de la fonction de retour dans le onreadystatechange.
Maintenant, pour en revenir au soucis original, je ne suis pas sur a 100% que le idBoite passé en paramètre dans la fonction soit utilisé correctement dans le code de la fonction du onreadystatechange.
J'ai déjà eu quelques patouilles avec ça.
Je pense qu'en rajoutant une propriété au xhr_object pour l'utiliser dans la fonction devrait passer le problème.
Un truc du style
Code PHP :
<?php
function refreshDragableBox(uniqueIdentifier,Idboite)
{
var xhr_object = null;
xhr_object = new XMLHttpRequest();
// Création de la nouvelle propriété. Je change le nom de variable pour montrer la différence
xhr_object.boite_Id=Idboite
// On défini ce qu'on va faire quand on aura la réponse
xhr_object.onreadystatechange = function()
{// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr_object.readyState == 4 && xhr_object.status == 200)
{
var htmlContentOfNewBox = xhr_object.responseText;
//J'utilise this.boite_Id au lieu de Idboite pour éviter tout parasitage externe.
document.getElementById(this.boite_Id).innerHTML = htmlContentOfNewBox;
}
}
xhr_object.open("GET", 'page/' + uniqueIdentifier + '.php', false);
xhr_object.send(null);
}