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 :
Mais en MVC, je ne peux pas utiliser le javascript comme cela.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>
Ma parade est la suivante : j'envoi des données XML avec donc la réponse success.
Ces données apparaissent bien dans la réponse POST lorsque je regarde avec firebug.
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;
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().
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 onClick="javascript:setTimeout('stopUpload()', 2500);"
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.
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;
Merci d'avance pour tout coup de main![]()
Partager