IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Cacher une input file


Sujet :

jQuery

  1. #1
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut Cacher une input file
    Bonjour à tous,

    je voudrais pourvoir uploader un fichier sans avoir d'input "file" visible. Comme c'est moche et non modifiable, je la cache, et simule un click dessus au moment ou je clique sur un bouton ou une image. Quand le fichier est choisi, le formulaire est envoyé automatiquement.

    Par exemple ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php
            if (isset($_FILES["Filefield"])) {
                    print_r($_FILES);
                    die()
            }
    ?>
     
    <script type    = 'text/javascript' src= 'jquery.js'></script>
     
    <input type='button' value='test' onclick="$('#Filefield').click();" />
    <br/>
    <form id='myForm' method='POST' enctype='multipart/form-data' target='myFrame'>
        <input type='file' name='Filefield' id="Filefield" style='display:none' onchange="$('#myForm').submit();"/>
    </form>
     
    <iframe name='myFrame' width='500px' height="500px">
     
    </iframe>
    Mais ce code functionne sous Firefox, Google Chrome, mais bien sur pas sous IE, il ne veut pas envoyer le formulaire(uelquesoit la version de IE).

    J'ai fais des tests, l'évenement onchange se déclenche, mais le formulaire n'est pas envoyé.

    Je sais pas si c'est un truc de sécurité de la part de IE, où un bug ....

    Si quelqu'un à une idée de comment contourner le probleme, ca m'aiderait bien.

    Merci d'avance.
    Cordialement

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    tu ne peux pas renseigner dynamiquement un input file.
    => tu ne peux pas lui mettre de value
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    Non je ne met pas de value, je simule le clique sur l'input file, pour que ça ouvre le FileChooser (je sais pas comment ca s'appelle, ca c'est le nom en Java).

    Parce que les input de type file sont vraiment moches .... donc je veux les cacher.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    he ben c'est parce qu'il est en display:none

    les elements en display none ne sont pas envoyés

    mets le plutot en visibility: hidden
    ou joue sur l'opacity
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    t'es sur que les éléments cachés ne sont pas envoyés, je vais faire un test tout à l'heure.

    Mais ca ne change rien au probleme, même en retirant le display:none ca marche pas.

    On peut observer que lorsque je choisis le fichier, la valeur va bien être saisie dans l'input. Par contre, lorsque je submit le formulaire, l'input va devenir vide et le formulaire n'est pas envoyé !!!

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Oui un element en display none n'est pas dans le flux DOM et n'est donc pas envoyé

    fais plutot un var_dump de $_FILES qu'un print_r
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    j'ai essayé sur tous les browser une input avec display:none est quand meme envoyée. Essaye ce code et tu verra que le parametre test est envoyé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form target='_blank'>
    	<input type="text" name='test' style='display:none' value='1'/>
    	<input type='submit' value='envoyer'/>
    </form>
    Que ce soit print_r ou var_dump change rien le formulaire n'est pas envoyé du tout, j'avais mis un echo au début du fichier, il n'est jamais affiché !!!

    Mon problème ici est vraiment quand jesimule le click, si je fais juste ce code la, le formulaire est envoyé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form id='myForm' method='POST' enctype='multipart/form-data' target='myFrame'>
        <input type='file' name='Filefield' id="Filefield" onchange="$('#myForm').submit();"/>
    </form>
    si je fais celui-ci, il ne l'est pas (enfin sous IE juste !)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <input type='button' value='test' onclick="$('#Filefield').click();" />
    <br/>
    <form id='myForm' method='POST' enctype='multipart/form-data' target='myFrame'>
        <input type='file' name='Filefield' id="Filefield" onchange="$('#myForm').submit();"/>
    </form>

Discussions similaires

  1. [HTML 4.0] Présentation d'une balise input file
    Par mouad70 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 29/09/2013, 20h00
  2. Récupérer les dimensions d'une image d'un champ input file
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/05/2011, 10h06
  3. [1.x] Conserver input file lors d'une validation de formulaire
    Par insane1 dans le forum Symfony
    Réponses: 2
    Dernier message: 23/08/2010, 12h49
  4. Code qui permet d'ouvrir une fenetre browser comme pour un input file
    Par Jim_Nastiq dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/06/2007, 15h11
  5. Input file sur une image
    Par Fonzy17 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/06/2006, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo