Bonjour à tous,

J'essai de mettre en place la technique de l'iframe afin de pouvoir upload des images en ajax. Pour ceux qui connaissent, il n'est pas possible en Ajax d'uploader avec multipart-data (raison de sécurité).

Je fais donc semblant. J'envoi mon formulaire via l'iframe, mon controller (je précise être en MVC) reçois bien le tout et le traitement est ok. Jusqu'ici tout va bien.

Là où je coince, c'est pour gérer l'envoi d'un retour. En php simple, il suffit de d'ajouter la ligne suivante à la page php qui traite le formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>
Mais en MVC, je ne peux pas utiliser le javascript comme cela.

Ma parade est la suivante : j'envoi des données XML avec donc la réponse success.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
$success = 1;
$xml = '<div id="success">
<?xml version="1.0" encoding="utf-8"?><infos>';
     $xml .= '<info id="1">';
          $xml .= '<success>' . $success . '</success>';
     $xml .= '</info>';
$xml .= '</infos></div>';
echo $xml;
Ces données apparaissent bien dans la réponse POST lorsque je regarde avec firebug.

Question :
Est-il bien possible de récupérer ces informations via le DOM ? Ou est-ce que je fais fausse route ?

Dans le cas où je peux, la suite de ma parade est de lancer une fonction javascript au moment de l'envoi du formulaire avec un setTimeout().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
onClick="javascript:setTimeout('stopUpload()', 2500);"
Et dans cette fonction, je souhaite récupérer les informations dans le DOM avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
var xml = document.getElementsByTagName('infos');
var successXML = xml[0].getElementsByTagName("success")[0].firstChild.nodeValue;
Seulement je n'arrive pas à parcourir la variable XML qui est un objetHTMLCollection. Après de multiples recherches et essais, j'en viens à douter que ma méthode puisse fonctionner.

Merci d'avance pour tout coup de main