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

Bibliothèques & Frameworks Discussion :

Afficher les options et stocker dans la base des donnees les valeurs


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut Afficher les options et stocker dans la base des donnees les valeurs
    Salut,
    j'ai une fonction js qui me permet de formatter une colonne grid apres un selection dans une autre colonne de la meme grid (colonne de type dojox.grix.cells.select") :
    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
     
    function formatterColonne()
    {
       grid.getCell(4).formatEditing = function(inDatum, inRowIndex)
       {
           if (widget == "select") {            
     
                codeHTML = "<select class=\"dojoxGridSelect\">";
                for (var i = 0; i < tab.length; i++) {
                    codeHTML += "<option value=\""+tab[i]["id"]+"\">"
                    +tab[i]["valeur"]+"</option>";
                }
                codeHTML += "</select>";
                return codeHTML;
     
            }
      }
    }
    cette fonction marche tres bien : elle changer le type de la deuxième colonne grid selon la valeur selectionnée de la première colonne grid.
    ex: si je sélectionne 'select' de la 1er colonne, le type de la deuxieme colonne grid devient liste deroulante.
    mais j'ai un petit probleme :
    je veux afficher dans la grid les valeurs et stocker dans la base de donnees les id.
    merci d'avance
    «En théorie, la théorie et la pratique sont les mêmes. En pratique, ils le sont pas."
    Albert Einstein.

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Très bonne idée que d'utiliser le format

    Pour la suite, logiquement tu dois gérer un onchange sur ton select.

    ERE
    Quand une tête pense seule, elle devient folle.

  3. #3
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut
    Salut,
    merci de votre reponse,

    j'ai pensé d'utiliser votre code:
    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
     
    <div id="grid" dojoType="dojox.grid.DataGrid" 
      jsId="grid"
      rowSelector="20px"
      store="test_store" structure="layout">
     
    <script type="dojo/connect" event="onStartEdit" args="inCell, inRowIndex">
    		console.info("info:", inCell, inRowIndex);
    		//si la cellule en édition correspond à celle attendue
    		if (inCell.field=="col2") { 
    		//pas très joli, mais vite fait: la combo n'est pas encore créée
    		//donc on décale dans le temps la création de l'événement onchange
    		window.setTimeout( function() {
    			var sel = dojo.query("select.dojoxGridSelect");
    			//on connecte l'événement onchange
    			dojo.connect(sel[0],"onchange",
    				dojo.hitch(sel[0],
    					function() {
     
                                               //comment faire pour afficher le text option et stocker la valeur option
     
    					}));
    		},2000);
    	}								
    </script>	
    </div>
    mais je ne sais pas comment je vais faire pour afficher dans la grid les valeurs et stocker dans la base de donnees les id..
    et aussi comment supprimer les noeuds du DOM apres leurs utilisation...

    et il serait mieux si je savais comment je peux appliquer le formatter onChange
    merci de m'aider
    «En théorie, la théorie et la pratique sont les mêmes. En pratique, ils le sont pas."
    Albert Einstein.

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Ton code dans la fonction située dans le hitch s'exécute dans le contexte de ton select. this pointe donc sur le select.

    Sinon pour le reste tu peux mettre directement ton code quand tu crées le select.

    Enfin, au delà de la prouesse technique, je reste circonspect sur ce type de code car on est à la frontière de la grid et c'est difficile à gérer correctement sans effet de bord.

    ERE
    Quand une tête pense seule, elle devient folle.

  5. #5
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut
    Salut,
    merci pour votre reponse,
    j'ai tenté de mettre cette fonction dans le hitch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function fomatterSelect(inDatum) {
           for (var i =0; i<tabOption.length; i++) {
               switch(inDatum) {
                     case tabOption["idOption"] :
                        return tabOption["valeurOption"];
               }
           }
    }
    mais ça marche pas
    merci de m'aider
    «En théorie, la théorie et la pratique sont les mêmes. En pratique, ils le sont pas."
    Albert Einstein.

Discussions similaires

  1. Enregistrer dans la base des donnees sqlite
    Par nunuT dans le forum Android
    Réponses: 7
    Dernier message: 14/04/2017, 18h31
  2. [MySQL] Interpreter du code php stocker dans une base de donnee
    Par sloat dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/02/2009, 20h28
  3. [MySQL] Stocker les e-mails reçus dans une base MySQL
    Par badjc dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/06/2008, 14h51
  4. [VBA] Gérer les erreurs d'insertion dans la base de données
    Par robert_trudel dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/12/2006, 12h45
  5. stocker les nom de fichiers dans une base
    Par Corben dans le forum Windows
    Réponses: 2
    Dernier message: 04/01/2006, 15h50

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