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 :

Ajout d'une information dans un select


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Points : 46
    Points
    46
    Par défaut Ajout d'une information dans un select
    Bonjour,

    je recherche à ajouter une information récupérée en AJAX dans mon select en HTML. Voir le screen pour mieux comprendre.
    - Pièce jointe 344449

    Quand je sélectionne une date, dans mes select, j'ai le nombre de Fax et Mails entre parenthèse, exemple : Fax à valider (32), Mails en cours (64) etc...

    Pour ça, j'ai ce morceau de code en JS qui va récupérer mon nombre
    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
    $(document).on("change", "#NumInt, #NomCli, #FaxMail, #TypeDoc, #DateCreaDeb, #DateCreaFin, #DevisNonRep", function() {
     
            var id = "<?php echo $id;?>";
            var NumInt = $("#NumInt").val();
            var NomCli = $("#NomCli").val();
            var FaxMail = $("#FaxMail").val();
            var TypeRech = "";
            var TypeDoc = $("#TypeDoc").val();
            var DateCreaDeb = $("#DateCreaDeb").val();
            var DateCreaFin = $("#DateCreaFin").val();
            var DevisNonRep = $("#DevisNonRep").val();
     
            for($i=0;$i<2;$i++)
            {
                if($i==0){
                    TypeRech = "Fax";
                }
                else
                {
                    TypeRech = "Mails";
                }
     
                $.ajax({
                    "url":"ChargeNbFaxMail.php",
                    "type":"POST",
                    "data":{
                        "id": id, "NumInt": NumInt, "NomCli": NomCli, "FaxMail": FaxMail, "TypeRech": TypeRech, "TypeDoc": TypeDoc, "DateCreaDeb": DateCreaDeb, "DateCreaFin": DateCreaFin, "DevisNonRep": DevisNonRep,
                    },
                    "dataType":"json",
                    "success":function(data){
                        data.TypeRech;
                        data.AValider;
                        data.EnCours;
                        data.NonEnvoyes;
                        data.Envoyes;
                        data.Total;
     
                        var table = new Array();
                        table[0]=data.AValider;
                        table[1]=data.EnCours;
                        table[2]=data.NonEnvoyes;
                        table[3]=data.Envoyes;
                        table[4]=data.Total;
                    },
                });
            }
        });
    - Et mon select basique en HTML
    Code HTML : 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
    <td>
      <select name="selectFax" id="selectFax" size=5>
        <option value="FaxaValider">Fax à valider</option>
        <option value="FaxenCours">Fax en cours</option>
        <option value="FaxnonEnvoyes">Fax non envoyés</option>
        <option value="FaxEnvoyes">Fax envoyés</option>
        <option value="FaxTous">Tous les fax</option>
      </select>
    </td>
    <td>
      <select name="selectMail" id="selectMail" size=5>
        <option value="MailaValider">Mails à valider</option>
        <option value="MailenCours">Mails en cours</option>
        <option value="MailnonEnvoyes">Mails non envoyés</option>
        <option value="MailEnvoyes">Mails envoyés</option>
        <option value="MailTous">Tous les mails</option>
      </select>
    </td>

    Comment puis-je ajouter mes data entre parenthèse dans mon select ?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    avec jQuery, vous pouvez modifier l'affichage d'une option comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        var nombre = 42;
        var texteElement = $("#selectMail option[value=\"MailaValider\"]").text();
     
        texteElement += " (" + nombre + ")";
     
        $("#selectMail option[value=\"MailaValider\"]").text(texteElement);

  3. #3
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Points : 46
    Points
    46
    Par défaut
    Comment je peux enlever les undefined ?
    Pas moyen avec un if, je dois mal m'y prendre
    Nom : Sans titre.png
Affichages : 80
Taille : 7,9 Ko

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    "undefined" est un type spécial donc il faut tester comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ("undefined" !== typeof nombre) {
        // le nombre est défini
     
    }

  5. #5
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Points : 46
    Points
    46
    Par défaut
    Super ça fonctionne, je connaissais != mais pas !==

    Mince je rencontre un problème, lorsque je sélectionne une autre date, les anciennes valeurs ne se mettent pas à jour et créer une autre colonne avec les nouvelles valeurs.
    Comment puis-je gérer cela ?
    Il faudrait que je clear en début de ma fonction

    Merci beaucoup pour ton aide mathieu

    Nom : Sans titre.png
Affichages : 80
Taille : 9,0 Ko

  6. #6
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Points : 46
    Points
    46
    Par défaut
    Aurais-tu une idée mathieu ? ou quelqu'un d'autre ?

  7. #7
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    le texte initial peut être stocké dans un attribut "data" comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="MailaValider" data-texte-initial="Mails à valider">Mails à valider</option>
    et pour l'utilisation en jQuery c'est comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var texteElement = $("#selectMail option[value=\"MailaValider\"]").data("texteInitial");

  8. #8
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    j'ai fait mon code autrement, avec un .append, plus pratique dans mon cas, le problème que je rencontre est le "undefined" qui s'affiche, j'ai mis un if pour tester si c'est différent de cette value pour gérer mes parenthèses mais la value s'affiche toujours :/
    Une idée ?

    Nom : Sans titre.png
Affichages : 71
Taille : 3,1 Ko
    Quand c'est égal à undefined, ça veut dire 0, or quand c'est égal à 0, je ne veux pas les parenthèses

  9. #9
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    "undefined" apparaît lorsque les valeurs de tes variables ne sont pas définient, donc ajoute un block else pour gérer ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(undefined !== typeof data.AValider) table[0] = " (" + data.AValider + ")" else table[0]='';
    (même chose pour les autres variables).

  10. #10
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Attention à ne pas confondre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ("undefined" !== typeof data.AValider)
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (undefined !== data.AValider)
    Dans le premier cas, on compare typeof avec la chaîne "undefined" (typeof renvoie toujours des chaînes) ; dans le second on compare directement notre variable à la valeur undefined.

    Dans le second cas, il peut être intéressant de passer en mode strict pour s’assurer que la valeur undefined n’est pas redéfinie, soit par accident, soit par un script malicieux.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  11. #11
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Points : 46
    Points
    46
    Par défaut
    Tout est OK merci pour votre aide !

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

Discussions similaires

  1. Suggestion : ajouter une information dans le cartouche Détails du profil
    Par ProgElecT dans le forum Evolutions du club
    Réponses: 0
    Dernier message: 10/01/2017, 12h03
  2. Comment ajouter une information dans la liste déroulante des résultats ?
    Par jmbinformatique dans le forum Odoo (ex-OpenERP)
    Réponses: 3
    Dernier message: 15/05/2014, 13h11
  3. [AC-2010] Ajout d'une information dans un état
    Par karolanne-911 dans le forum IHM
    Réponses: 15
    Dernier message: 06/03/2014, 15h06
  4. ajout d'une constante dans un select
    Par Shabata dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 18h24
  5. Ajout d'une colonne dans une table ...
    Par Djedjeridoo dans le forum SQL
    Réponses: 2
    Dernier message: 22/07/2003, 16h12

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