|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Futur Membre du Club
![]() Inscription : janvier 2010 Messages : 27 ![]() |
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 :
<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. Code :
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 :
onClick="javascript:setTimeout('stopUpload()', 2500);" Code :
Merci d'avance pour tout coup de main |
||||
|
|
00
|
|
|
#2 | ||||
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 148 ![]() |
Bonjour,
1- Citation:
Code php :
2- Citation:
A+. |
||||
|
|
00
|
|
|
#3 | ||||
|
Futur Membre du Club
![]() Inscription : janvier 2010 Messages : 27 ![]() |
Bonjour Andry Aime,
Merci pour ces corrections. L'ajout du header entraine deux erreurs, une liée à jquery et l'autre lié à ckeditor. En revanche, cela ne change rien malheureusement. Le comportement de l'ajout d'image et de sa miniature se passe bien. En fait, je récupère bien quelque chose, mais ce que je récupère est vide. Code :
Code :
|
||||
|
|
00
|
|
|
#4 | ||
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 148 ![]() |
Je ne comprend pas vraiment ton astuce mais
Citation:
Code :
successXML = $(this).find('success').text(); Ce bout de code ne te servira à rien si tu exploites un format text Citation:
|
||
|
|
00
|
|
|
#5 | ||||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
J'ai l'impression que tu te compliques inutilement la vie...
Pourquoi ne pas passer par l'événement onload ? Code html :
Code html :
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||||
|
00
|
|
|
#6 | ||
|
Futur Membre du Club
![]() Inscription : janvier 2010 Messages : 27 ![]() |
En fait, à force d'essayer plein de choses, j'en oublie les fondamentaux :
1 - Oui je recrée une variable inutilement, c'est ballot^^ 2 - Mon each ne fonctionne pas. La fonction ne rentre jamais dedans. 3 - J'ai essayé avec cette autre boucle, même résultat Code :
Je suis dans une application MCV, sur une page html avec un formulaire d'ajout d'image (un simple input file et un bouton). Je fais semblant de gérer l'ajout en ajax grâce à un iframe. Quand je clic sur ajouter l'image, j'appelle un controller (MediaController) et son action ajouter. Cette action traite ce que j'ai envoyé : sauvegarder l'originale et créé une miniature, enregistré dans la bd et renvoyer un string grâce à un echo. Ce string correspond au xml. Pourquoi je fais ça ? parce que j'ai déjà utilisé cette méthode dans une fonction jquery/ajax et que ça fonctionne bien (en cas de succès, je récupère la variable xml et je fais mon each pour récupérer le tout). Sauf que je ne suis pas en vrai Ajax (ne fonctionne pas avec le mutlipart-data), donc pas de XMLHttpRequest object en réponse. Pour simuler cet objet qui est normalement renvoyé par le server, je fais l'echo mentionné plus haut. Ainsi, dans la reponse POST, mon controller renvoi bien des données brutes, du texte en l'occurrence. Et c'est ces données là que je veux récupérer. Une fois cela fait, je peux continuer ma fonction comme si de rien n'étais puisque j'aurai au moins le succès ou non de l'opération. C'est pour ça que je ne suis pas sur de pouvoir exploiter ces données en javascript. Je pense (et je peux penser à tort justement) que ces données envoyées dans la réponse POST sont dans le DOM, et donc accessible via javascript. C'est du bricolage puisqu'on ne fait pas d'ajax (donc pas d'objet réponse du serveur exploitable) et en plus, je suis en MVC. En php simple ça aurait déjà été réglé Donc est-ce que je cherche à faire quelque chose d'impossible ? Bon appétit |
||
|
|
00
|
|
|
#7 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#8 | ||
|
Futur Membre du Club
![]() Inscription : janvier 2010 Messages : 27 ![]() |
Bonjour Bovino,
Je n'avais pas vu ton premier message. Je vais regarder du côté de onload(). Sinon, pour le fait qu'en MVC ça ne devrait pas changer. Je ne peux pas mettre dans mon controller du javascript en fermant la balise php comme c'est le cas si je ne fais pas cela en MVC. Code :
Je vais regarder si zend permet de lancer une fonction javascript depuis un controller. |
||
|
|
00
|
|
|
#9 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Citation:
Au passage : tu multiplies inutilement les objets de type window ! top, parent et self correspondent déjà à des objets window, donc ton code est identique à
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#10 |
|
Futur Membre du Club
![]() Inscription : janvier 2010 Messages : 27 ![]() |
Effectivement, j'avais pris le problème à l'envers et j'ai voulu recréer la roue
![]() Deux possibilités donc avec zend : - Soit on crée sa propre aide de vue (http://www.stoimen.com/blog/2010/06/...-a-actionview/) - Soit on utilise un composant du framework (http://framework.zend.com/manual/fr/...roduction.html) En tout cas, merci beaucoup pour votre aide et vos corrections. Enjoy |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com