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 :

Modifier valeur du texte des options d'un select en fonction de la value


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Modifier valeur du texte des options d'un select en fonction de la value
    Bonjour,

    J'ai un pépin qui se doit s’être simple :
    Je récupère les valeur de ma BDD pour faire un formulaire dynamique sur 3 niveaux, et cela fonctionne très bien (quand on sélectionne le niveau 1, le niveau 2 retourne les valeurs adéquates, et idem niveau 3)
    Donc tout va bien ... sauf que je souhaite modifier le champ "text" de mon select de niveau 2 (category) en fonction de la value du champs option
    en gros si value== "x", text == "mon nouveau texte"

    Ci dessous mon JS qui marche très bien, je veux y ajouter une liste de valeur pour le document.getElementById('category').innerHTML = leselect; change a valeur du texte (et pas de la value) retournée par ma BDD

    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
    if (window.XMLHttpRequest) {
        oXmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        oXmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    function selectManufacturer(id) {
        document.getElementById('subcategory').innerHTML = "";
        oXmlhttp.open('POST', "recherche-listesderoulantes-resultats.php");
        oXmlhttp.onreadystatechange = function () {
            if (oXmlhttp.readyState == 4 && oXmlhttp.status == 200) {
                leselect = oXmlhttp.responseText;
                document.getElementById('category').innerHTML = leselect;
            }
        }
        oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = 'q=m&id=' + id;
        oXmlhttp.send(data);
    }
     
    function selectCategory(manufacturer, category) {
        oXmlhttp.open('POST', "recherche-listesderoulantes-resultats.php");
        oXmlhttp.onreadystatechange = function () {
            if (oXmlhttp.readyState == 4 && oXmlhttp.status == 200) {
                leselect = oXmlhttp.responseText;
                document.getElementById('subcategory').innerHTML = leselect;
            }
        }
        oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = 'q=c&manufacturer=' + manufacturer + '&id=' + category;
        oXmlhttp.send(data);
    }



    code 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
    19
    <form method="get" action="recherche-listesderoulantes-resultats.php">
        <select style="width: 80%" id="manufacturers_id" name="manufacturers_id" onchange="selectManufacturer(this.value);">
            <option value="-1">Choisissez</option>
            <option value="****">Marque 1</option>
            <option value="****">Marque 2</option>
             ...
        </select>
        <div id="category" style="display:inline">
            <select style="width: 80%" name="category" onchange="selectCategory(1743,this.value);">
                <option value="-1">-- Catégorie --</option>
                <option value="13508">Accessoires</option>
                <option value="13453">Accessoires 2</option>
                <option value="13622">Accessoires 3</option>
                 .....
            </select>
        </div>
        <div id="subcategory" style="display:inline">
        </div>
    </form>

    Donc il faut que je remplace Accessoires 1 par Accessoire automobile
    Accessoires 2 par Accessoires moto
    etc ...

    D'avance un grand merci car là je sèche !!!

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Résolu !
    Cela était beaucoup plus simple qu'anticipé, en effet le select étant créé dynamiquement j'avais un doute mais il suffit de ces quelques lignes :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var strMessage1 = document.getElementById("category") ;
    strMessage1.innerHTML = strMessage1.innerHTML.replace( '<option value="13508">Accessoires','<option value="13508">Accessoires tototototot').replace( '<option value="13453">Accessoires','<option value="13453">Accessoires ggggggggggg') ;


    Que je place après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function selectManufacturer(id) {
    	document.getElementById('subcategory').innerHTML = "";
     oXmlhttp.open('POST',"recherche-listesderoulantes-resultats.php");
     oXmlhttp.onreadystatechange=function() {
      if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
      	leselect = oXmlhttp.responseText;
    	document.getElementById('category').innerHTML = leselect;
      }
    Hé voilà, trop fort !!! (un peu d'autosatisfaction ne peut nuire à la bonne humeur !)

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

Discussions similaires

  1. [FAQ] Les formulaires (partie 1) Comment modifier l'état d'une des options d'un select ?
    Par Auteur dans le forum Contributions JavaScript / AJAX
    Réponses: 4
    Dernier message: 18/11/2013, 21h32
  2. Réponses: 6
    Dernier message: 05/04/2013, 12h02
  3. [XL-2007] Modifier valeur de cellule avec Option button
    Par tiotsiaka dans le forum Excel
    Réponses: 1
    Dernier message: 04/05/2012, 19h06
  4. Comment fonctionnent les index des options d'un select ?
    Par pekka77 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/10/2005, 18h05
  5. [html/css]coloration des options dans un select
    Par the_edge dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 04/05/2005, 15h19

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