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 :

Eliminer les doublons dans le select box


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Janvier 2014
    Messages : 111
    Par défaut Eliminer les doublons dans le select box
    Bonjour à tous, j'alimente un sélectbox avec des données de ma base et voulais éliminer les doublons afin que les éléments ne se répètent pas.
    voici comment j'ai procédé :
    HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
         <div class="col-md-6">
    	                       <div class="form-group">
    		                       	<label class="control-label"><strong>Coût:</strong></label>
    												<div class="col-md-9 input-group">
    			                   <select class="form-control searchable" style="width:100%;" name="cout" required="" id="select-cout">
    			                       	<option value="">Sélectionnez le coût</option>
     
    			                  </select>
    			          </div>
    			 </div>
    Js:
    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
    	$("#select-articles").on("change", function(e){
    					var id = $(this).val()
    					var qte = $(`option[value=${id}]`).data("qte");
    					var perissable = $(`option[value=${id}]`).data("perissable")
     
    					var url = '<?php echo base_url("index.php/Articles/get_cout_date_exp/"); ?>'
    				$.ajax({
    					method: "GET",
    					url:'Articles/get_cout_date_exp',
    					dataType: "json",
    					data: {id : id},
    					success: function(data){
    					// console.log(data);
    					}
     
    				}).done(function(data){
    					//console.log(data)
    					$('#select-cout').empty();
    					$('#select-date-exp').empty();
    						     var tabCout = new Array();
    							 var tabDate = []
    							for(var i= 0; i < data.length; i++)
    								{
    									//console.log("init = "+tabCout)
    									if($.inArray(data[i]["cout"],tabCout) == -1)
    									{
    									tabCout=data[i]["cout"] 
    									$('#select-cout').append($('<option/>', { 
    								   	value: data[i]["cout"] ,
    									text :data[i]["cout"],
    									}));
    									}
     
     
    								}
    							})
     
     
    			});

  2. #2
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Salut,
    Est-ce que ça ne serait pas plus simple de lancer une requête SELECT DISTINCT dans ta méthode get_cout_date_exp ?
    Traiter les doublons côté client, ça me semble un peu tiré par les cheveux à moins que tu y sois obligé.

  3. #3
    Membre confirmé Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Janvier 2014
    Messages : 111
    Par défaut
    Bah j'ai essayé mais ça ne passe pas étant donné qu'on peut avoir deux enregistrements de différents coût mais la même date d'expiration

  4. #4
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Je pense qu'il est plus judicieux de réfléchir à la requête.

    En php, il existe une fonction array_unique pour supprimer les doublons d'un tableau
    http://php.net/manual/fr/function.array-unique.php

  5. #5
    Membre confirmé Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Janvier 2014
    Messages : 111
    Par défaut
    Au fait le filtre se fait sur deux champs la requête serait donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT cout, date_expir from lots
    le résultat serait parfait si c'était sur un seul champ.

    Maintenant le select box je le construit à partir d'une requête ajax, c'est donc le résultat que je veux filtrer.

  6. #6
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Ah ok, effectivement, dans ce cas la le DISTINCT ne sert à rien.

    Ta "requête" ajax ne retourne que ce que PHP lui envoie. Donc, le mieux est de traiter l'unicité des informations du côté PHP

    La fonction array_unique peut être d'un grand secours pour ton cas.

    - Tu lances ta requête SQL.
    - Tu boucles sur les résultats pour créer le tableau suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     $my_array = array(
                            "test1-cout 1",
                            "test1-cout 2",
                            "test2-cout 1",
                            "test3-cout 3",
                            "test3-cout 3"
                        );
     
                        $data = array_unique($my_array);
                        var_dump($data);
    La fonction array_unique ne traite que des chaines.
    Il te suffit de boucler sur (ici) $data et de reconstruire un autre tableau à retourner à ton appel ajax

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

Discussions similaires

  1. Réponses: 42
    Dernier message: 07/07/2012, 09h16
  2. Réponses: 2
    Dernier message: 25/01/2007, 12h28
  3. [XSL] Eliminer les doublons dans un noeud
    Par Shadow aok dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/04/2006, 15h17
  4. Eliminer les doublons dans un tableau d'entiers
    Par engi dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 21/03/2006, 13h59
  5. Éviter les doublons dans une requete
    Par royrremi dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/08/2004, 19h37

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