prob upload fichier dans popup - HTML/CSS - Programmation
Marsh Posté le 14-03-2006 à 17:15:17
enctype="multipart/ form-data"> <== tu as mis un espace alors qu'il n'en faut pas
Marsh Posté le 14-03-2006 à 17:16:35
gatsu35 a écrit : enctype="multipart/ form-data"> <== tu as mis un espace alors qu'il n'en faut pas |
Si j'enlève l'espace je ne récupère plus rien du tout... Toutes les variables sont vides
Marsh Posté le 14-03-2006 à 17:27:08
ce que tu as trouvé sur un forum est un peu naze
J'ai la réponse à ta question, c'est parce que le formulaire est mal envoyé.
tu colles un id sur ton formulaire :
<form id="monformu">
et dans ta fonction pop_it tu fais ça :
function pop_it(formId) {
my_form = document.getElementById(formId)
window.open("traitements/attente.php", "popup", "height=440, width=440, menubar='no', toolbar='no', location='no', status='no', scrollbars='yes'" );
my_form.target = "popup";
my_form.submit();
}
et sur l'évènement onclick du bouton tu fais :
pop_it('monformu')
sinon pourquoi passer par du javascript alors qu'un simple target="_blank" dans le form aurait suffit.
Marsh Posté le 14-03-2006 à 17:35:32
gatsu35 a écrit : ce que tu as trouvé sur un forum est un peu naze. |
c possible oui...
gatsu35 a écrit : |
J'ai un message d'erreur javascript qui me dit que my_form est indéfini ou n'est pas un objet, il est possible en javascript de récupérer les valeurs d'un formulaire avec un getElementById? ca m'intrigue un peu...
gatsu35 a écrit : |
Le javascript me permet de paramétrer la taille de ma fenêtre, de ne pas utiliser un attribut qui n'est plus valide en xhtml (si je ne me trompe pas) et d'afficher une page d'attente intermédiaire... (les fichiers que je dois télécharger sont très lourds et très longs à analyser par la suite...) J'ai pas trouvé de meilleur façon de répondre à mes contraintes tout simplement...
Marsh Posté le 14-03-2006 à 17:47:25
sunee a écrit : c possible oui... |
nan nan c'est sur!!!!
sunee a écrit : J'ai un message d'erreur javascript qui me dit que my_form est indéfini ou n'est pas un objet |
Il manque juste un ; à la fin de la déclaration de myform(en cherchant un peu tu aurais pu trouver!):
Code :
|
sunee a écrit : il est possible en javascript de récupérer les valeurs d'un formulaire avec un getElementById? ca m'intrigue un peu... |
Oui c'est possible:
Code :
|
sunee a écrit : Le javascript me permet de paramétrer la taille de ma fenêtre, de ne pas utiliser un attribut qui n'est plus valide en xhtml (si je ne me trompe pas) et d'afficher une page d'attente intermédiaire... (les fichiers que je dois télécharger sont très lourds et très longs à analyser par la suite...) J'ai pas trouvé de meilleur façon de répondre à mes contraintes tout simplement... |
Parametrer la taille de la fenetre -> ok
l'attribut->nawak
la page d'attente-> nawak
Bref l'interet est limité ...
Marsh Posté le 14-03-2006 à 17:48:24
sunee a écrit : c possible oui... |
Bon tu dois bien te douter que j'ai oublié un truc lol :
var my_form = document.getElementById(formId);
en fait on récupère une sorte de pointeur sur l'objet, tu as accès à tout l'objet, et c'est comme ça de toute manière qu'on accède à un objet de nos jours.
et recolle les dernieres modifs que tu as fait à ton formulaire et à ton script
Marsh Posté le 14-03-2006 à 20:14:49
anapajari a écrit :
|
Je parlais de récupérer la totalité des valeurs d'un formulaire (puisque dans l'exemple de Gatsu le GetElementById pointe sur l'id du formulaire....)
pas un élément isolé ce que je sais faire merci
anapajari a écrit : |
Je trouve tes commentaires très intéressants En ce qui concerne l'attribut, c'est nawak dès l'instant où tu te moques des standarts, ce qui n'est pas le cas de toutes les entreprises surtout quand c'est un élément de l'argumentaire de vente... Quant à la page d'attente là aussi, cela n'engage que toi mais à choisir entre passer 5 min devant une page vide à se demander ce qui se passe certains préfèreront une petite animation par ex.... surtout si les intéressés ne sont pas informaticiens du tout!
Merci quand même de ta réponse
Marsh Posté le 14-03-2006 à 20:18:50
gatsu35 a écrit : |
Je savais utiliser le getElementById sur un élément du formulaire, je pensais pas que c'était possible sur tout le formulaire... comme je l'ai dit je ne suis pas une championne du javascript et le PHP n'est pas encore complètement objet donc... je ne suis pas tout à fait coutumière de ce genre de manipulations tout simplement...
Je te remercie pour ton aide en tout cas, je teste ca demain au taf mais ca devrait fonctionner (encore qu'il me semblait avoir rajouté le ; pour tester... mais peut être un peu vite avant de partir)
bonne soirée !
Marsh Posté le 14-03-2006 à 20:55:29
Ben tu auras quelques coups de fouet pour l'exemple dans ce cas
On récapitule :
Dans une page HTML n'importe quel ensemble de balise
<b>mon texte</b>, <input>, <form>pleins de trucs dedans</form>
est représenté comme un objet au niveau de ce qu'on appelle le DOM
Document Object Model, Imagine le DOM comme un arbre, ou la racine est document, ensuite chaque enfant est une des balises que tu trouves dans ta page, et chaque balise aura elle aussi des enfants.
Pour mieux t'en rendre compte, ouvre firefox, et fait outils > Dom Inspector.
Dans la fenetre de guache tu auras l'arbre représentatif de ta page, et dans celle de droite tu as des informations précises sur l'objet selectionner, tu peux meme changer le mode d'affichage et choisir par exemple l'objet Javascript. tu verras bien par toi même j'ai la flème d'en faire plus.
Sinon les méthodes pour accéder à des objets de nos jours sont nombreuses.
document.getElementById() te retourne un pointeur sur l'objet en fonction de l'id que tu lui auras indiqué.
objetencours.getElementsByTagName("tag" ), cette fonction est appellée à partir de l'objet que tu auras récupérée, elle retourne un tableau dans le quel se trouvent tous les objets correspondant au tag demandé, exemple :
input, b, div
après libre à toi de faire ce que tu veux
Marsh Posté le 14-03-2006 à 21:45:06
gatsu35 a écrit : Ben tu auras quelques coups de fouet pour l'exemple dans ce cas |
Merci pour ce petit rappel, très bien expliqué! j'irai jeter un oeil dans firefox... j'y vois plus clair en tout cas...
Marsh Posté le 15-03-2006 à 08:53:10
gatsu35 a écrit : recolle les dernieres modifs que tu as fait à ton formulaire et à ton script |
Voilà :
La fonction Javascript :
Code :
|
le formulaire :
Code :
|
Voilà, j'ai toujours un fichier introuvable au final...
résultats :
Code :
|
Marsh Posté le 15-03-2006 à 10:02:12
sunee a écrit : ... |
Reprenons dans l'ordre:
- en ce qui concerne l'attribut, je ne me moque pas des standarDs mais je trouve qu'il vaut mieux une page non-validée pour un attribut compris de tous les navigateurs que du javascript qui fait un pop-up
- la page d'attente n'a strictement rien a voir avec le fait que tu ouvres ( ou pas ) un pop-up. Tu peux très bien la faire sans avoir a utiliser un window.open!!!!
Enfin concernant ton problème:
- il y a toujours un espace en trop dans le enctype
- il nous faudrait l'ensemble de code php( vu qu'a mon avis ça vient de la maintenant)
Marsh Posté le 15-03-2006 à 10:31:28
anapajari a écrit : |
Expliqué comme ça c'est toujours mieux... le popup présente l'avantage de pouvoir déconnecter ce traitement du site et de la navigation intérieure... mais on est d'accord le target le fait aussi... sauf pour la taille de la fenêtre....
Je ne suis pas fana de javascript de toute façon (la preuve) j'essaie seulement de faire au mieux avec les contraintes qui me sont imposées, ce sur quoi je bosse se rapproche d'avantage d'un logiciel que d'un site web classique à ceci près que les outils de dev ont été imposés même s'ils ne sont pas forcément les plus appropriés... (trop long à détailler ici et je pense pas que ca intéresse qui que ce soit de toute façon )
anapajari a écrit : |
Pour l'espace en trop, j'ai déjà répondu à ça : si je l'enlève je ne récupère plus aucun paramètre
Je pense comme toi que ca doit venir du php, seulement mon site est découpé en div et il n'y a rien d'autre donc que le formulaire dans mon fichier... Le reste n'est pas rechargé, je vais chercher de ce côté là mais ce ne sont que des menus...
j'ai un peu du mal à savoir d'où cela peut venir étant donné que je n'ai pas de problème avec les autres formulaires du site (mais en même temps c'est le seul endroit ou je dois télécharger un fichier et aucun traitement ne se fait dans une popup pour les autres formulaires...)
Encore une espèce de bug mystique pour une bête erreur de syntaxe qui traine quelque part je parie
Marsh Posté le 14-03-2006 à 16:52:06
Bonjour à tous,
Je viens d'essayer de poster un message mais c'était le premier et visiblement ca n'a pas fonctionné... je recommence donc depuis le début en espérant ne pas me répéter
J'ai un formulaire d'upload de fichier tout à fait classique, sur lequel j'effectue un traitement en PHP. Je souhaiterai que la soumission se fasse non pas dans la page courante mais dans une popup pour conserver intacte ma page initiale avec le formulaire.
J'ai donc trouvé la petite fonction suivante sur un autre forum :
je l'ai ajouté à mon formulaire :
Jusqu'ici tout va bien... Sauf que le fichier ne semble pas être téléchargé
Lorsque j'arrive sur ma page de traitements, je parviens à afficher sans prob la valeur de $_POST['fichier'] mais je m'arrête à mon premier test :
Il me renvoie systématiquement fichier introuvable....
Quelqu'un a-t-il une petite idée ? Est ce du à la soumission du formulaire via la fonction javascript?