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 :

mise a jour de liste


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut mise a jour de liste
    Bonjour,

    j'essaye de mettre à jour 3 liste en cascade. lorsqu'il une sélection est faite dans la première , les deux autres se mette à jour.
    j'utilise la framework django et donc du python dans mon html.

    le problème vient de mon fichier .js mais je bloque un peu pouvez vous m'aidez?

    html
    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
     
     <div>
      <form method="post"> {% csrf_token %}
      	<select name="select_espece" id="select_espece" multiple>&nbsp;&nbsp;
    		<option value="ns">-- Sélectionnez une espèce --</option>
      	{% for ESPECE in latest_espece_list %}
    		<option value="{{ ESPECE.ID}}">{{ ESPECE.LB_NOM}}</option>
        {% endfor %}
     
     
    	    <input type="submit" value="Search" />&nbsp;&nbsp;<input type="reset" value="Reset"/>		
      	</select>
    	</form>
     
     
      <form methode="post"> {% csrf_token %}
     
    	<select name="select_typo" id="select_typo" multiple>&nbsp;&nbsp;
    		<option value="ns">--Sélectionnez une typo ----</option>
      	{% for ESPECE in latest_typo_list %}
    		<option value="{{ ESPECE.ID}}">{{ ESPECE.TYPO}}</option>
    	{% endfor %}
    	<br/>
    	<br/>
     
     
     
     
      	<input type="submit" value="Search"/>&nbsp;&nbsp;<input type="reset" value="Reset"/>
     
       </select>
       </form>
     
       <form methode="post"> {% csrf_token %}
     
    	<select name="select_habitat" id="select_habitat" multiple>&nbsp;&nbsp;
    		<option value="ns">--Sélectionnez un habitat ----</option>
      	{% for ESPECE in latest_HABITAT_list %}
    		<option value="{{ ESPECE.ID}}">{{ ESPECE.HABITAT}}</option>
    	{% endfor %}
    	<br/>
    	<br/>
     
     
     
     
      	<input type="submit" value="Search"/>&nbsp;&nbsp;<input type="reset" value="Reset"/>
     
       </select>
       </form>
     </div>
     
     
        </body>
    </html>
    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
    $(document).ready(function(){
     
     
                    $("#select_espece").change(function(){ 
                               if($(this).val() != "ns"){
     
                                   var esp = $(this).val();
     
                                    $.ajax({
                                       url: "views.py",
                                       global: false,
                                       type: "POST",
                                       data: "ESPECE.ID="+esp,
                                       dataType: "html",
                                       success: function(){
                                      $("#select_typo").empty();
                                         $("#select_typo").html(msg);
     
                                    $.ajax({
                                       url: "views.py",
                                       global: false,
                                       type: "POST",
                                       data: "ESPECE.ID="+esp,
                                       dataType: "html",
                                       success: function(){
                                      $("#select_habitat").empty();
                                         $("#select_habitat").html(msg);
                                     }});
     
     
     
                                     }});
     
                               }
                    });
     });
    merci d'avance

  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
    le problème vient de mon fichier .js mais je bloque un peu
    Ah oui, au moins c'est très clair expliqué comme ça !
    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 éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut
    oui,

    si je savais exactement ce qui ne fonctionne pas ce serait plus clair pour moi aussi!. et il est vrai que je pars d'un code déjà réaliser, peut être pas la meilleur manière d'apprendre javascript que je ne connais pas du tt, mais ça j'ai pas besoin de le dire.

    sans le js ma page html s'affiche avec mes données à l'intérieur de chaque liste et trier.
    avec le js, ma page est continuellement en recherche et donc vide.

    je suppose dans un premier temps que je dois avoir une erreur sur l'objet document et l'appel de la méthode sur ma variable var afin de récupérer mon élément sélectionner?

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Le code HTML ? Il faudrait plutôt nous donner le code qui s'affiche dans un navigateur.

    Je vois plusieurs formulaires avec <option value="{{ ESPECE.ID}}">{{ ESPECE.LB_NOM}}</option>. Espérons qu'il s'agisse à chaque fois d'un ID différent.

    Le code JS ? Pourquoi deux transactions AJAX consécutives sur "views.py" !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $.ajax({
    	url: "views.py",
    	global: false,
    	type: "POST",
    	data: "ESPECE.ID="+esp,
    	dataType: "html",
    	success: function( data ){
    		// le résultat de la transaction est dans data
    		$("#select_habitat").html( la valeur est incluse dans data mais je ne connais pas la structure de data  );
    		$("#select_typo").html( la valeur est incluse dans data mais je ne connais pas la structure de data );
    	}
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut
    bonjour,

    le code qui apparaît dans le navigateur

    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
     
     <div>
      <form method="post"> <div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='ff39cc268a3f603aa9fcf0cacbb097d1' /></div>
      	<select name="select_espece" id="select_espece" >&nbsp;&nbsp;
    		<option value="ns">-- Sélectionnez une espèce --</option>
     
    		<option value="Abietinaria abietina">Abietinaria abietina</option>
     
    		<option value="Abludomelita gladiosa">Abludomelita gladiosa</option>
     
    		<option value="Abra alba">Abra alba</option>
     
    <form methode="post"> <div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='ff39cc268a3f603aa9fcf0cacbb097d1' /></div>
     
    	<select name="select_typo" id="select_typo" multiple>&nbsp;&nbsp;
    		<option value="ns">--Sélectionnez une typo ----</option>
     
    		<option value="">Barcelone</option>
     
    		<option value="">CH</option>
     
     <form methode="post"> <div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='ff39cc268a3f603aa9fcf0cacbb097d1' /></div>
     
     
    	<select name="select_habitat" id="select_habitat" multiple>&nbsp;&nbsp;
    		<option value="ns">--Sélectionnez un habitat ----</option>
     
    		<option value="">1110-1</option>
     
    		<option value="">1110-2</option>
     
    		<option value="">1110-3</option>
    trois listes déroulante basé sur trois champs d'une même table. Une liste (n'importe laquelle) filtre les deux autres

    je pensais qu'il fallait faire une transaction pour chaque liste....

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Une liste (n'importe laquelle) filtre les deux autres
    Vous voulez dire qu'un changement dans n'importe quelle liste provoque des modifications dans les deux autres ? Alors, pour simplifier le traitement, il est préférable de créer trois transactions AJAX différentes, chacune appelant une méthode Python différente.

    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
    $("#select_espece").change(function(){
    	var esp = $( this ).val();
     
    	if ( esp != "ns" ){
    		$.post( "/espece", { "value" : esp }, function( data, textStatus, jqXHR ){
    			// debug
    			//console.log( data, textStatus, jqXHR );
     
    			// succès de la transaction, traité le contenu de data
     
    		}).error( function( jqXHR, textStatus, errorThrown ){
    			// debug
    			//console.log( jqXHR, textStatus, errorThrown );
     
    			// échec de la transaction, gèrer la catastrophe
     
    		});
    	}
    });
     
    $("#select_typo").change(function(){
    	var esp = $( this ).val();
     
    	if ( esp != "ns" ){
    		$.post( "/typo", { "value" : esp }, function( data, textStatus, jqXHR ){
    			// debug
    			//console.log( data, textStatus, jqXHR );
     
    			// succès de la transaction, traité le contenu de data
     
    		}).error( function( jqXHR, textStatus, errorThrown ){
    			// debug
    			//console.log( jqXHR, textStatus, errorThrown );
     
    			// échec de la transaction, gèrer la catastrophe
     
    		});
    	}
    });
     
    $("#select_habitat").change(function(){
    	var esp = $( this ).val();
     
    	if ( esp != "ns" ){
    		$.post( "/habitat", { "value" : esp }, function( data, textStatus, jqXHR ){
    			// debug
    			//console.log( data, textStatus, jqXHR );
     
    			// succès de la transaction, traité le contenu de data
     
    		}).error( function( jqXHR, textStatus, errorThrown ){
    			// debug
    			//console.log( jqXHR, textStatus, errorThrown );
     
    			// échec de la transaction, gèrer la catastrophe
     
    		});
    	}
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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

Discussions similaires

  1. [AC-2007] mise a jour de listes déroulantes liées
    Par djas_air dans le forum IHM
    Réponses: 11
    Dernier message: 12/04/2011, 17h17
  2. Mise a jour zone liste
    Par majothi dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/07/2008, 02h49
  3. Mise a jour de liste déroulante
    Par SnakeCharmer dans le forum IHM
    Réponses: 6
    Dernier message: 27/05/2008, 15h28
  4. correction de ma fonction de mise a jour de listes deroulantes
    Par eclipse012 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/01/2007, 16h27
  5. pb de mise a jour de liste Déroulante !
    Par Fredri dans le forum Access
    Réponses: 9
    Dernier message: 11/01/2006, 17h27

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