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 :

Changement de input.name via js


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Directeur adjoint en restauration
    Inscrit en
    Mai 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Directeur adjoint en restauration
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2005
    Messages : 51
    Points : 57
    Points
    57
    Par défaut Changement de input.name via js
    Bonsoir le Forum,

    Je travaille actuellement sur une application dont un des modules va supprimer la sélection faite dans un formulaire.

    Je précise que je suis total newbee en js

    Dans le formulaire, 2 colonnes : Identifiant, Nom.
    Le tout est traité dans la page de traitement via $_POST (php).
    Ce que je voudrais, c'est que lorsque l'utilisateur sélectionne une ligne (checkbox), la propriété 'name' de l'input-texte change pour qu'il soit pris en compte par $_POST. Si la checkbox n'est pas sélectionnée, la valeur de l'input-texte en Null ("").

    Pour débuter, je vous donne la fonction que j'ai mis en place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    		function ChangeName(key)
    			{
    				 if (document.forms.getElementById(key).checked)
    						//alert("Numéro de clé" + key);
    			      document.forms.getElementById('nom_' + key).name="nom_art[]";
    			   else
    			      document.forms.getElementById('nom_' + key).name="";
    			}
    Et maintenant,la partie du code concerné du formulaire issue d'un foreach-php :
    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
    23
    24
    25
    26
    27
    28
    29
    <?php
                                    foreach ($tab_art as $key=>$valeur)
                                            {
                                                    if  ($key % 2 == 0)
                                                            {
                                                                    $cle = $key;
                                                                    echo '<tr class="row1"><td align="center">'
                                                                            .'<input type="checkbox" id="'.$cle.'" name="id_art[]"  onclick="javascript:ChangeName('.$cle.')" '
                                                                            .'value="'.$tab_art[$key]["id_art"].'">'
                                                                            .$tab_art[$key]["id_art"].'</td>'
                                                                            .'<td><input type="hidden" id="nom_'.$cle.'" name="" value="'
                                                                            .$tab_art[$key]["nom_art"].'">'
                                                                            .'<input type="text" value="'.$tab_art[$key]["nom_art"].'"></td>'
                                                                            .'</tr>';
                                                            }
                                                    else
                                                            {
                                                                    $cle = $key;
                                                                    echo '<tr class="row2"><td align="center">'
                                                                            .'<input type="checkbox" id="'.$cle.'" name="id_art[]"  onclick="javascript:ChangeName('.$cle.')" '
                                                                            .'value="'.$tab_art[$key]["id_art"].'">'
                                                                            .$tab_art[$key]["id_art"].'</td>'
                                                                            .'<td><input type="hidden" id="nom_'.$cle.'" name="" value="'
                                                                            .$tab_art[$key]["nom_art"].'">'
                                                                            .'<input type="text" value="'.$tab_art[$key]["nom_art"].'"></td>'
                                                                            .'</tr>';
                                                            }
                                            }
                                    ?>
    Quand je fais la sélection sur le formulaire, la propriété input.name ne change pas, et je n'ai pas la partie ['nom_art'] dans la variable $_POST.

    Où est mon erreur ?

    Merci de vos lumières...

    Laurent

  2. #2
    Membre du Club
    Homme Profil pro
    Directeur adjoint en restauration
    Inscrit en
    Mai 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Directeur adjoint en restauration
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2005
    Messages : 51
    Points : 57
    Points
    57
    Par défaut
    Re bonsoir,

    Après réflexion, je me demandais s'il n'y aurait pas une autre solution de récupérer le nom correspondant aux ou à l'identifiant sélectionné.

    En effet, si je laisse la propiété input.name avec 'nom_art[]', je vais avoir la variable $_POST, avec les identifiants sélectionnés, mais tous les noms du formulaire. Ce qui est plutôt difficile à gérer pour afficher la sélection en vue d'une confirmation de l'utilisateur.

    Avez-vous des idées ?

    Merci

    Laurent

  3. #3
    Membre du Club
    Homme Profil pro
    Directeur adjoint en restauration
    Inscrit en
    Mai 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Directeur adjoint en restauration
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2005
    Messages : 51
    Points : 57
    Points
    57
    Par défaut
    Bonjour le Forum,

    Visiblement le sujet ne devait pas plaire.

    Malgré tout, je n'ai pas laché, et à force tourner virer dans la FAQ javascript, j'ai fini par essayer d'adapter le script pour désactiver une textBox avec une checkBox. Sauf que là, pour pouvoir récupérer les données du tableau généré par la boucle des input, il fallait que la checkBox active une input Hidden, pour retrouver les données dans la variable $_POST.

    Espérant avoir été clair pour ceux que le sujet peut intéresser.

    Bonne continuation à tous.

    Laurent

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/05/2009, 12h47
  2. masquer/afficher input name suivant selection dans une liste
    Par rvm31 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/12/2007, 19h33
  3. Nombre de caractères maximum dans un Input Text via method=post ?
    Par dymezac dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/11/2007, 23h20
  4. Ecrire dans un input text via un input button
    Par kevinf dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/10/2007, 09h46
  5. <input name="reset" type="reset">
    Par FrankOVD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 27/10/2005, 21h43

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