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 :

Modification d'un champ de formulaire par onClick ?


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Modification d'un champ de formulaire par onClick ?
    Bonjour/soir

    Je suis en train de bloquer sur un petit problème qui doit sans doute pouvoir se résoudre simplement, mais mes connaissance en JS sont trop limités (voires nulles)

    J'ai un formulaire avec un champ de type texte (code ci dessous)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <form name="addToAlbum" method="POST" enctype="multipart/form-data"
       action="index.php?p=images&mod=upload">
         <fieldset class="filedsetUpload">
    		<legend>Ajoutez cette photo à un album</legend>
                    <label for="album">Album (séparez les noms par une virgule) : </label>
                    <input id="album" name="albums" type="text" /><br />
         </fieldset>	
         <input type="submit" name="addAlbums" value="Insérez dans l(es) album(s)" />
    </form>
    J'ai affiché au dessus une liste des albums disponible (
    <ul>
    <li> album 1</li>
    <li> album 2</li>
    </ul>)
    j'aimerais que quand on click sur un album de la liste, on ajoute dans l'input 'album' le nom de l'album suivit d'une virgule, de manière à récupérer une liste des albums formaté comme ça :
    (string) album1, album2, album5,
    je virerais la dernière virgule au besoin par le script php. Ce formatage me permet de faire très facilement une inclusion dans ma BDD, donc j'aimerais éviter de faire un checkbox par album (question d'ergonomie, sinon, c'est aussi faisable)

    j'imagine qu'on doit pourvoir faire ça avec quelque chose du type
    <ul>
    <li onClick='addAlbum.qquchose += "album1, "'> album 1</li>
    <li onClick='addAlbum.qquchose += "album2, "'> album 2</li>
    </ul>

    mais là, je ne sais pas comment procéder.

    Merci d'avance de votre aide.

  2. #2
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonjour,

    tu n'es vraiment pas loin de la solution :

    ta liste d'albums :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ul>
    <li onClick="addAlbum(this)"> album 1</li>
    <li onClick="addAlbum(this)"> album 2</li>
    </ul>
    la fonction javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function addAlbum(le_li) {
      document.getElementById('album').value+=le_li.firstChild.nodeValue;
    }
    et je te conseille pour le input 'album' d'avoir les attributs Name et Id identiques (y'avait un 's' d'un coté et pas de l'autre)

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par sebhm Voir le message
    et je te conseille pour le input 'album' d'avoir les attributs Name et Id identiques (y'avait un 's' d'un coté et pas de l'autre)
    +1
    Juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function addAlbum(le_li) {
      document.getElementById('album').value+=le_li.firstChild.nodeValue + ',';
    }
    et une suggestion d'ergonomie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li style="cursor:pointer;" onclick="addAlbum(this)"> album 1</li>
    EDIT : pour info, en utilisant un select multiple, sur le serveur tu aurais bien récupéré les values sélectionnées sous la forme A+

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Par contre, à cause des noeuds vides, je me demande s'il ne vaudrait pas mieux utiliser le_li.innerHTML plutôt que le_li.firstChild.nodeValue ...

    A+

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Par contre, à cause des noeuds vides, je me demande s'il ne vaudrait pas mieux utiliser le_li.innerHTML plutôt que le_li.firstChild.nodeValue ...

    A+
    +1, ça me parait mieux et plus simple.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    ok, merci beaucoup, ça m'aide bien ... allez, plus que les 3/4 à faire... je tiens le bon bout (mais le plus dur, à savoir se remettre au code, est derrière moi, reste plus qu'à taper)

Discussions similaires

  1. [AC-2013] Protection d'un champ de formulaire par un mot de passe
    Par JulieLesp dans le forum Sécurité
    Réponses: 3
    Dernier message: 09/06/2014, 11h41
  2. Modification d' un champs de formulaire en Javascript Sous le WaveMaker
    Par nourelhouda.benyas dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 10/04/2014, 10h07
  3. [AC-2007] Enregistrement auto sur modification d'un champ de formulaire
    Par Lireas dans le forum IHM
    Réponses: 2
    Dernier message: 17/05/2010, 11h16
  4. champs de formulaire par liste déroulante multichoix
    Par malkie dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/02/2008, 23h10
  5. Réponses: 6
    Dernier message: 03/11/2006, 09h59

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