Lancer traitement.php sur un onChange

psyckan Messages postés 135 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 8 mai 2010 - 21 avril 2009 à 12:33
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 22 avril 2009 à 20:36
Bonjour,

Je sais pas si le sujet est assez explicite.
En fait, j'ai un formulaire qui permet d'uploader une photo à la fois, et j'essaie de le changer pour qu'a chaque fois que le champ file change, le fichier soit upload.

Voila ce que j'avais :

<form name='form1' id='form1' method='post' action='upload_picture.php' enctype='multipart/form-data'>\n
    \n
        ----
\n
            \n
                \n
                <label>Photo : </label>, \n
            , \n
        \n
        ----
\n
            \n
                \n
                <label>Comment : </label>, \n
            <textarea name='comment' id='comment' cols='45' rows='5'></textarea>, \n
        \n
        ----
\n
                           
           , \n
        \n
   
\n
</form>\n

et je veux qu'au lieu d'uploader le fichier quand on clic sur Upload, il s'upload sur un onChange au niveau du champ file, comme ceci :

<td align='left'></td>\n

mais je ne sais pas quel syntaxe utiliser.

Merci de votre aide

7 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
21 avril 2009 à 20:52
Salut Psyckan,

Il faudrait plutôt que tu fasses une soumission de ton formulaire dans ton onchange (onchange="[...].submit();") Ca fonctionnerait peut être, je n'ai pas testé et je n'en suis pas sur pour ce type de champ qui est très restrictif.
Ce dont je suis sur par contre, c'est que c'est une très mauvaise idée.
Pourquoi ?
Simplement parce que l'utilisateur peut ne pas utiliser le bouton parcourir et choisir alors d'entrer le chemin à la main ... tu imagines qu'à chaque lettre entrée sur le clavier tu vas faire un upload d'un fichier qui n'existe pas. En somme c'est ingérable.

Cordialement,

Kohntark -
psyckan Messages postés 135 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 8 mai 2010
21 avril 2009 à 23:55
Salut,

Je répond juste vite-fait à la deuxieme partie de ton message et je testerai ta solution demain.
Quand on clic sur le champ, cela à le même effet que quand on clic sur le bouton parcourir : un explorer s'ouvre.
Je sais pas si c'est une particularité de Firefox. Mais si ça se trouve on peut fermer cette explorer et ensuite taper une URL ou quelque chose comme ça. Je testerai ça demain

Merci de ta réponse et de ta mise en garde.
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
22 avril 2009 à 00:14
Heu ... c'est dans la dernière version de firefox que ça ouvre "l'explorer" même lors d'une (tentative d') entrée directe du chemin ? ... merci pour l'info, je n'avais pas encore vu ça.
Menfin, sous IE ma remarque reste valide (et peut être les autres)

Bonne fin de nuit,

Kohntark -
psyckan Messages postés 135 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 8 mai 2010
22 avril 2009 à 00:21
Je suis sous Firefox/3.0.8. Je testerai d'autre navigateur.

Merci

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
22 avril 2009 à 00:37
Moi aussi je tourne sous cette version, mais il me semble que c'est un nouveau comportement de FF (je dis peut être une connerie mais bon)
Avec IE v7.0 il semble encore possible d'entrer le chemin du fichier à la main. Safari 4 public beta (528.16) semble réagir de la même manière que FF.
Ce ne sont là que des constations avec des tests très succincts. 

Kohntark -
psyckan Messages postés 135 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 8 mai 2010
22 avril 2009 à 10:52
J'ai essayé vite fait avec FF3, IE8, Opera 9.64 et Safari3.2.2

Firefox :
Quand je clic sur le champ, l'explorer s'ouvre. Si je le referme, le curseur se trouve dans le champ mais on ne peut rien ecrire.

Safari :
Il n'y a meme pas de champ, il y a juste un bouton parcrourir. Mais le onChange ne marche pas à cause de ça je pense.

IE : On ne peut pas écrire dans le champ et il fuat double cliquer pour ouvrir l'explorer (ou cliquer sur le bouton parcourir)

Opera : On peut écrire dans le champ et l'explorer ne s'ouvre que lorsqu'on clic sur le boutton parcourir. Le onChange ne marche pas non plus
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
22 avril 2009 à 20:36
Je reste sur mon avis que procéder ainsi n'est pas une bonne méthode, c'est ingérable je pense. Ou alors il faut se farcir des dizaines de lignes de code pour s'adapter aux différents navigateurs, ... et encore.
Perso je préfèrerai faire cliquer l'utilisateur à chaque fois, ou alors lui proposer d'emblée plusieurs champs file, ou encore lui permettre d'envoyer un fichier ZIP contenant tous ses fichiers, etc ...

Quelle version d'IE utilises tu ? Parce que chez moi on peut entrer le chemin à la main, qui est, soit dit au passage, une bonne chose. Il me semble que c'était le cas de FF dans les anciennes versions d'ailleurs.

Cordialement,

Kohntark -
Rejoignez-nous