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 :

Onchange sur un select


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2019
    Messages : 31
    Points : 21
    Points
    21
    Par défaut Onchange sur un select
    Bonjour,

    J'ai le code PHP suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     									<select class="form-control" onchange="poutre()" id="caillebotis" name="caillebotis" value="">
     										<?php
                                                                                            $db = Database::connect();
                                                                                            echo '<option selected="selected" value="vide">Pas de finition</option>';
                                                                                            foreach ($db->query('SELECT code, description FROM type_caillebotis ORDER BY code DESC') as $caillebotis)
                                                                                                    echo '<option value="' . $caillebotis['code'] . '">' . $caillebotis['description']  . '</option>';
                                                                                            Database::disconnect();
                                                                                            ?>
    									</select>
    Et voici le javascript :

    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
     	<script type="text/javascript">
     		function poutre() {
    				alert(document.getElementById("caillebotis").value);
     			if (document.getElementById("caillebotis").value != "vide") {
    				var poutreSelect = "Poutre";
    				var largeur = document.getElementById("la1").value;
    				document.getElementById("seulement_poutre").checked=false;
    			} else {
    				alert ('je suis passé');
    				var poutreSelect = "Pas de poutre";
    				var largeur = 0;
    			}
     			$.post('insert-dv.php', {
     				retour: poutreSelect, large:largeur
     			}); //renvoie la valeur de escSelect sur le serveur
     			$.post('selectPoutre-dv.php', // AJAX : On appelle un script php
     				{
     					poutre: poutreSelect,large:largeur
     				}, // Passage de la variable en paramètre
     				function(data) {
     					$('#poutre').html(data);
     				});
     		}
     	</script>
    Lors du premier changement de value, le script est bien appelé.
    Lors des autres changement, il ne l'est plus !

    Où peut bien être le problème ? J'utilise ce principe dans un autre select, sans problème et j'ai beau comparer, je ne vois pas où ça coince...

    Merci d'avance de vous pencher sur mon problème.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- à mon avis, il faut que tu regardes dans les fichiers PHP appelés via Ajax : insert-dv.php ou selectPoutre-dv.php.

    2- Je pense m^me que le 2ème appel Ajax devrait se faire DANS le 1er (et pas à la suite).
    En effet, les appels Ajax sont asynchrones.


    N.B. Tant qu'à utiliser jQuery, :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("caillebotis").value
    s'écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#caillebotis").val()

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2019
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Merci pour la syntaxe Jquery.

    Je ne pense pas qu'il soit utile de vérifier ce qu'il se passe dans selectPoutre.php car le code est correctement exécuté la première fois.

    Le code PHP est issu de insert-dv.php...

    Le test est très simple à faire : lorsque j'ai coché la case "seulement_poutre", le script décoche cette case.
    Au premier passage, la case est bien modifiée par le script. Au second passage, sa valeur ne change plus...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2019
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    J'ai fait un copier-coller de ma fonction en y ajoutant progressivement les lignes après test.
    J'ai appelé la copie poutre2() et je l'ai appelée de la même manière.
    Aucune erreur et après avoir ajouté toutes les lignes, cela fonctionne comme je le veux.
    Comme je ne détecte pas de différences entre les deux, j'ai renommé la première en "poutre2". Cela fonctionne !
    Encore plus fort : puisque les deux fonctionne quand je les renomme, je modifie mon select et j'appelle poutre(). Cela ne fonctionne plus !

    J'ai cherché dans mon code toutes les occurence de "poutre", rien d'anormal...

    J'y perd mon latin !

    Celui qui trouve la solution sera mon mentor jusqu'à la fin de ma carrière !

    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
     	<script type="text/javascript">
     		function poutre() {
     			if (document.getElementById("caillebotis").value !== "vide") {
    				var poutreSelect = "Poutre";
    				var largeur = document.getElementById("la1").value;
    				document.getElementById("seulement_poutre").checked=false;
    			} else {
    				var poutreSelect = "Pas de poutre";
    				var largeur = 0;
    			}
     			$.post('insert-dv.php', {
     				retour: poutreSelect, large:largeur
     			}); 
     			$.post('selectPoutre-dv.php', 
     				{
     					poutre: poutreSelect,large:largeur
     				}, 
     				function(data) {
     					$('#poutre').html(data);
     				});
     		}
     	</script>
     	<script type="text/javascript">
     		function poutre2() {
     			if (document.getElementById("caillebotis").value !== "vide") {
    				var poutreSelect = "Poutre";
    				var largeur = document.getElementById("la1").value;
    				document.getElementById("seulement_poutre").checked=false;
    			 }else{
    				var poutreSelect = "Pas de poutre";
    				var largeur = 0;
    				}
    				$.post('insert-dv.php', {
    					retour: poutreSelect, large:largeur
    				}); 
    				$.post('selectPoutre-dv.php', 
    					{
    						poutre: poutreSelect,large:largeur
    					}, // Passage de la variable en paramètre
    					function(data) {
    						$('#poutre').html(data);
    					});
     		}
     	</script>

Discussions similaires

  1. propriété onChange sur un select, pb sous IE7 !
    Par avogadro dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/02/2007, 16h46
  2. onchange sur un SELECT : passage de paramètre
    Par NikoBe dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/10/2006, 12h14
  3. 2 actions sur evenement onchange sur champ Select
    Par falz222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2006, 21h59
  4. onChange sur un SELECT
    Par linar009 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/07/2006, 11h14
  5. [Onchange] sur checkbox selection ds une liste deroulante
    Par maxxou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/01/2006, 01h17

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