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 :

Récupérer valeur d'un input


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Par défaut Récupérer valeur d'un input
    Bonjour,

    Je met d'abord le code et j'explique mon problème après :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <tr>
        <td class="id_activiteproduct"><input type="text" value="' . $id_activiteproduct . '" disabled/></td>
        <td class="heure"><input type="text" value="' . $heure . '" /></td>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $('document').ready(function() {
        $('.heure input').change(function() {
            //var heure = $('#idTab' + jourNombre + ' .heure input').attr('value');
            var heure = $('.heure input').attr('value');
            var id_activiteproduct = $('.id_activiteproduct input').attr('value');
            ;
            sauvegarde(id_activiteproduct, heure);
        });
    J'ai dans une classe une fonction qui me retourne un tableau pour chaque valeur trouvé. J'ai donc plusieurs td avec la classe heure. J'aimerai pouvoir récupérer n'importe quelle ligne sauf qu'on me retourne toujours la première ligne. Je ne vois absolument pas comment faire ?? Je vois bien que mon code ne peux pas marcher car toutes mes lignes ont la class heure ..

    Merci.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ben plutôt que de demander l'ensemble de tes input dans la fonction associée, demande plutôt celui qui est concerné par l'événement...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('.heure input').change(function() {
        console.log($(this));  // C'est le bon !
    }
    Et au passage, ce n'est pas avec .attr() qu'on récupère la valeur d'un champ, mais avec .val().
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Par défaut
    Bon, j'ai réussi à régler mon problème même si maintenant j'en ai un autre. Je précise que je suis débutant en jquery.

    Mon problème maintenant est le suivant : j'ai une liste déroulante générée par ma bdd mysql. Et j'aimerai que lorsque je change de valeur dans ma liste déroulante et lors du clic sur le bouton enregistrer, le contenu d'un td de mon tableau change .. vous comprendrez peut-être mieux avec mon code.

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <script>
    function sauvegarde() {
     
                                                                                                $('.jour').each(function() {
                                                                                                    var tab_activite = new Array();
     
                                                                                                    var id_jour = $(this).attr('id');
                                                                                                    var jour = id_jour.replace('idTab', '');
     
                                                                                                    $('#idTab' + jour + ' .table_activite tr.tr_activite').each(function() {
                                                                                                        var id_activiteproduct = $(this).find('.id_activiteproduct input').val();
                                                                                                        var id_activite = $(this).find('.id_activite select').val();
                                                                                                        var heure = $(this).find('.heure input').val();
                                                                                                        var nom_activite = $(this).find('.nom_activite input').val();
                                                                                                        var description_activiteproduct = $(this).find('.description_activiteproduct textarea').val();
                                                                                                        var obj = {};
                                                                                                        obj = {
                                                                                                            "id_activiteproduct": id_activiteproduct,
                                                                                                            "id_activite": id_activite,
                                                                                                            "heure": heure,
                                                                                                            "nom_activite": nom_activite,
                                                                                                            "description_activiteproduct": description_activiteproduct
                                                                                                        };
                                                                                                        tab_activite.push(obj);
                                                                                                    });
     
                                                                                                    $.ajax({
                                                                                                        type: "POST",
                                                                                                        url: "index.php?id_product=" + id_product + "&controller=product",
                                                                                                        async: true,
                                                                                                        cache: false,
                                                                                                        dataType: "html",
                                                                                                        data: {
                                                                                                            ajax: "1",
                                                                                                            action: "sauvegarde",
                                                                                                            id_jour: jour,
                                                                                                            tab_activite: tab_activite
                                                                                                        },
                                                                                                        success: function(data)
                                                                                                        {
                                                                                                            //alert(data);
                                                                                                            $.fancybox(
                                                                                                                    '<p style="color:#0bb14d;font-weight:bold;width:200px;heigth:80px;">Enregistrement réussi</p>',
                                                                                                                    {
                                                                                                                        "padding": 20,
                                                                                                                        "closeBtn": true
     
                                                                                                                    }
                                                                                                            );
                                                                                                        },
                                                                                                        error: function(jqXHR, textStatus, errorThrown)
                                                                                                        {
                                                                                                            //alert(errorThrown);
                                                                                                        }
     
                                                                                                    });
                                                                                                });
                                                                                            }
     
                                                                                            function afficher_activite(donnees) {
                                                                                                $(".description_activite").empty();
                                                                                                $(".description_activite").append(donnees);
                                                                                            }
     
                                                                                            $('document').ready(function() {
                                                                                                $('.button').click(function() {
                                                                                                    sauvegarde();
                                                                                                });
                                                                                                $('.id_activite select').change(function() {
                                                                                                    afficher_activite('ok');
                                                                                                });
                                                                                            });
    </script>
    Lorsque id_activite est changé description_activite est changé !

    Avec la fonction on de jquery peut-être mais je vois pas trop comment faire ?!

    Merci.

  4. #4
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $( '#MonIdDeMaListeDeroulante' ).on ( 'change', function( ) { $( '#Id_De_La_Cellule_En_Question' ).html( MaVariable + 'Ma chaîne de caractère qui l\'accompage' ); } );
     
    $( '#MonIdDeMonBoutonSauvegarder' ).on ( 'click', function( ) { $( '#Id_De_La_Cellule_En_Question' ).html( MaVariable + 'Ma chaîne de caractère qui l\'accompage' ); } );

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Par défaut
    Ce ne sera pas avec l'id car je n'ai que des class dans mon table :

    <td class="id_activite">ma liste déroulante</td>
    <td class="description_activite">description correspondant à la liste</td>

    Je vois comment utiliser le on de jquery maintenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $('.id_activite select').each(function() {
        $(this).on('change', function() {
            afficher_activite('ici id_activite qui vient d\'être changé');
        });
    });
    Comme ceci je pense. Mais dans ma fonction afficher_activite() il me faudrait récupérer la valeur du select changé. Et vu que j'ai plusieurs class id_activite je ne peux pas faire de .val() sur le select et avec console.log($(this)); j'ai un undefined problème au niveau de String ..

  6. #6
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut
    Si tu n'ajoutes pas une classe ou si tu ne la changes pas et si tu ne peux pas la définir a partir d'un élément parent personne ne pourra rien faire pour toi.

    Pour ce qui est du reste il existe une documentation très fournis sur jQuery

Discussions similaires

  1. Récupérer valeur d'un input type="Text"
    Par Mygush dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/12/2008, 09h45
  2. [javascript] récupérer valeur d'un input type="hidden"
    Par hirochirak dans le forum ASP.NET
    Réponses: 22
    Dernier message: 12/12/2008, 14h53
  3. Récupérer valeur chekbox et input dans un DIV
    Par axanta dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/11/2008, 15h51
  4. récupérer valeur d'un input
    Par Mat67 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 20/06/2007, 14h13
  5. Réponses: 1
    Dernier message: 25/04/2007, 16h23

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