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

JavaScript Discussion :

Upload multiple avec ajout dynamique des champs


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut Upload multiple avec ajout dynamique des champs
    J'ai trouvé ce code et j'aimerais l'adapter pour mon site. C'est un script qui permet d'ajouter et d'enlever des champs file (upload) en javascript donc sans recharger la page. Malheureusement je ne comprends pas tout...

    Je ne comprends pas quels noms prennent les champs et comment les récupérer... Quelqu'un pour m'aider ?

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    en fait ça crée pas des inputs file à la chaine ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fich.name   = 'mesfichiers[]';
    cote php tu récupères

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_POST['mesfichiers'][0]
    $_POST['mesfichiers'][1]
    $_POST['mesfichiers'][2]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup, c'est tout ce dont j'avais besoin !

    [edit] Oups... non pas résolu

    Comment je fais pour savoir combien de champs sont remplis ensuite dans mon fichiers php ?

    Y'a pas une variable ou quelque chose ?

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    un array_count en php ou tu passe un autre champs hidden en javascript
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     document.getElementsByName('mesfichiers').length

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Préfère La méthode qui permet de récupérer la taille de ton tableau coté php

  6. #6
    Invité
    Invité(e)
    Par défaut
    Alors j'ai copié le code dans ma page, ok. Mais je n'arrive pas à récupérer...

    J'ai seulement modifié la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fich.name   = 'mesfichiers[]';
    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fich.name   = 'fichier_page[]';

    Ensuite dans mon fichier qui est censé récupérer j'ai mis ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $form_nbfic_page = count($_POST['fichier_page']);
    echo $form_nbfic_page;
    Systématiquement il me retourne 0...

  7. #7
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($_POST['fichier_page'])
    ??

  8. #8
    Invité
    Invité(e)
    Par défaut
    var_dump($_POST['fichier_page']) = NULL ...


    Tout d'un coup je suis plus très sûr qu'on récupère comme ça...

  9. #9
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    j'ai un trou de mémoire ...
    je l'ai déja fait mais je ne sasi plus comment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['mesfichiers[0]']

  10. #10
    Invité
    Invité(e)
    Par défaut
    Je ne comprends vraiment plus là.... J'ai essayé tout ça et à chaque fois, NULL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var_dump($_POST['fichier_page[0]']);
    var_dump($_POST['fichier_page[]']);
    var_dump($_POST['fichier_page']);
    var_dump($_POST['fichier_page'][0]);
    var_dump($_POST['fichier_page']['']);

  11. #11
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    non non la syntaxe correcte est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['mesfichiers'][0]
    le problème est ailleurs ...
    essaye avec des inputs en dur , pas dynamiques ...

  12. #12
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    question bête , as tu bien définis du coté de ton formulaire la méthode post ??

  13. #13
    Invité
    Invité(e)
    Par défaut
    Oui. Mon formulaire se présente à peu près comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <form enctype="multipart/form-data" name="page" method="post" action="<?php echo HOST; ?>pages/t_edi_page.php">
     
    // des champs input
     
    echo "
    	<fieldset  id='fichiers'>
    		[<a href='#' onclick='ajouter(); return false;' />+</a>]<br />
    	</fieldset >";
     
    // des autres champs
     
    </form>

  14. #14
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    est tu sur de bien appender l'input dans le form ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       var conteneur   = document.getElementById('fichiers');
    as tu bien modifié cette ligne pour appender dans le form ??

    si te inputs ne sont pas dans le form il n'y a pas grande chance pour qu'il arrivent coté serveur ...


    [edit] oki j'avais pas vu l'id du fieldset [/edit]

  15. #15
    Invité
    Invité(e)
    Par défaut
    Je ne vois pas ou si situe mon problème. Apparemment, rien les champs d'upload n'envoient rien à mon script censé récupérer les fichiers

  16. #16
    Invité
    Invité(e)
    Par défaut
    Je n'ai pas trouvé la solution à ce problème mais j'ai trouvé un autre script sur ce site. On a un formulaire d'upload multiple à la gmail. Très facile à utiliser.

    le code javascript :

    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
    20
    21
    22
     
    var upload_number = 2;
    	function addFileInput()
    	{
    		var d = document.createElement("div");
    		var l = document.createElement("a");
    		var file = document.createElement("input");
    		file.setAttribute("type", "file");
    		file.setAttribute("name", "fichier_page"+upload_number);
    		l.setAttribute("href", "javascript:removeFileInput('f"+upload_number+"');");
    		l.appendChild(document.createTextNode("enlever"));
    		d.setAttribute("id", "f"+upload_number); d.appendChild(file);
    		d.appendChild(l); document.getElementById("moreUploads").appendChild(d);
    		upload_number++;
    	}
     
    	function removeFileInput(i)
    	{
    		var elm = document.getElementById(i);
    		document.getElementById("moreUploads").removeChild(elm);
    		upload_number--;
    	}
    le code html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <input type=\"file\" name=\"fichier_page1\" id=\"fichier_page1\" onchange=\"document.getElementById('moreUploadsLink').style.display = 'block';\" />
    <div id=\"moreUploads\"></div>
    <div id=\"moreUploadsLink\" style=\"display:none;\">
    	<a href=\"javascript:addFileInput();\">Attacher un autre fichier</a>
    </div>
    Je mets le tag résolu et merci à tous pour votre participation et votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Framework] Ajouter dynamiquement des champs dans la page
    Par yassineonline2013 dans le forum Spring
    Réponses: 1
    Dernier message: 11/06/2013, 09h49
  2. Ajout dynamique des champs dans un JFrame
    Par amine1980 dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 12/12/2011, 12h19
  3. Upload multiple avec ajout dynamique des champs
    Par siddh dans le forum Téléchargez
    Réponses: 0
    Dernier message: 03/10/2011, 16h55
  4. [MySQL] Requete Select avec choix dynamique des champs de condition
    Par belaggoun2000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/02/2009, 11h30
  5. [DOM] Ajouter dynamiquement des champs inputs
    Par bobic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/05/2008, 13h10

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