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 :

jqGrid - jointures, listes déroulantes


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    A la découverte de la POO
    Inscrit en
    Mai 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : A la découverte de la POO

    Informations forums :
    Inscription : Mai 2009
    Messages : 93
    Par défaut jqGrid - jointures, listes déroulantes
    Hello à tous
    je découvre jQuery depuis peu et surtout le frameWork jqSuite.
    Dans ce frameWork, ce qui m’intéresse le plus (dans un premier temps ) est la génération des tableaux avec jdGrid.

    J'arrive à faire pas mal de choses sympa apres 2 jours de découvertes et de tests.

    Sur une table unique, aucun soucis, mais j'ai fait pour mes tests 2 tables de référence OR pour modifier ou ajouter un nouvel item, je n'ai aucune idée de comment m'y prendre.
    même remarque pour le champ date : j'y mets bien un date picker qui fonctionne mais la saisie n'est pas prise en compte ( ou plutot mauvais format donc il met 01-01-1970 toujours...)

    comment puis je faire avec des jointures et des tables de référence ?
    j'ai regardé les exemples de la suite mais je n'ai pas trouvé quelque chose qui s'en rapproche.
    Quelqu'un a t il déja mis en place un tableau de ce genre ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    a mon avis c'est plus server side que ça se passe non ???
    Tu ne rédiges pas les requêtes en js si ?

    Trouves la page de traitement coté serveur et modifies le code...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Homme Profil pro
    A la découverte de la POO
    Inscrit en
    Mai 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : A la découverte de la POO

    Informations forums :
    Inscription : Mai 2009
    Messages : 93
    Par défaut
    En fait, pour l'affichage, tout est niquel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $grid->SelectCommand = 'SELECT mc.id, date, time, message, traite, t.nom, p.nom as Pertinence 
    						FROM mc
    						JOIN ref_type_mc t
    							ON mc.id_type_mc=t.id
    						JOIN ref_pertinence p
    							ON mc.pertinence=p.id';
    Ma requete est bonne donc le tableau à l'affichage est bon

    par contre si j'insere une ligne, je voudrai pour selectionner le type de mc dans une liste déroulante qui tape dans ma table ref_type_mc et que dans ma table principale soit inséré l'id du type_mc bien sur.

    Et c'est la ou je ne trouve pas d'exemple.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Si je te suis bien tu veux retourner deux résultats de requete ?
    Un pour le tableau, l'autre pour le select ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Homme Profil pro
    A la découverte de la POO
    Inscrit en
    Mai 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : A la découverte de la POO

    Informations forums :
    Inscription : Mai 2009
    Messages : 93
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Si je te suis bien tu veux retourner deux résultats de requete ?
    Un pour le tableau, l'autre pour le select ?
    euh.... non pas du tout
    Je vais essayer d'etre plus precis,
    voici l'exemple que j'ai mis en place : grid.php

    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
    $grid->SelectCommand = 'SELECT mc.id, date, time, message, traite, t.nom  as "Type MC", p.nom as Pertinence 
    						FROM mc
    						JOIN ref_type_mc t
    							ON mc.id_type_mc=t.id
    						JOIN ref_pertinence p
    							ON mc.pertinence=p.id';
    // set the ouput format to json
    $grid->dataType = 'json';
    // Set the table to where we add the data
    $grid->table = 'mc';
    // We tell that the primary key is not serial, which should be inserted by the user
    //$grid->serialKey = false;
    $grid->setPrimaryKeyId('id');
    // Let the grid create the model
    $grid->setColModel();
    // Set the url from where we obtain the data
    $grid->setUrl('grid.php');
    $grid->setGridOptions(array(
        "caption"=>"Main Courante PC Crise",  // mauvais affichage dans le include
        "rownumbers"=>true,                   // affiche numéros de ligne
    	"rowNum"=>10,                         // Nombre de lignes par défaut
    	"width"=>'auto',
    	"height"=>'auto',
        "sortname"=>"id",                     // Classement par défaut
    	"sortorder"=>"desc",
        "hoverrows"=>true,                    // highlight la ligne survolée
    	"altRows"=>false,                     // couleur differente 1 ligne/2
    	"multiselect"=>true,                  // affiche cases à cocher
    	"ignoreCase"=>true,                   //ignores capitlization when sorting
    	"scrollrows"=>true,                   // ?
    	//"toppager"=>true,                   // retrouver le paginator en haut
        "rowList"=>array(1,10,20,50,100)
     ));
    // ici quelques selColProperty que je passe
    // Enable navigator
    $grid->navigator = true;
    $grid->setNavOptions('navigator', array("pdf"=>true,"csv"=>true,"excel"=>false,"add"=>true,"edit"=>true,"del"=>true,"view"=>true, "search"=>true));
    $grid->setNavOptions('add',array(	"addCaption"=>"Ajouter une MC",
    									"closeAfterAdd"=>true,
    									"reloadAfterSubmit"=>true));
    $grid->setNavOptions('edit',array(	 "editCaption"=>"Mise à Jour",
    									"closeAfterEdit"=>true,
    									"reloadAfterSubmit"=>true));
     
    //$grid->setNavOptions('edit',array("closeAfterEdit"=>true,"editCaption"=>"Update Customer","bSubmit"=>"Update"));
    $grid->renderGrid('#grid','#pager',true, null, null, true,true);
    $connection = null;
    Voici la table que j'ai crée pour avec 2 tables de référence (j'aurai peut etre mieux fait de commencer par une )
    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
    -- Structure de la table `mc`
    --
     
    CREATE TABLE IF NOT EXISTS `mc` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `date` date NOT NULL,
      `time` time NOT NULL,
      `message` text NOT NULL,
      `pertinence` int(11) NOT NULL,
      `traite` int(11) NOT NULL,
      `id_type_mc` smallint(6) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `ref_pertinence`
    --
     
    CREATE TABLE IF NOT EXISTS `ref_pertinence` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `nom` varchar(30) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `ref_type_mc`
    --
     
    CREATE TABLE IF NOT EXISTS `ref_type_mc` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `nom` varchar(30) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
    Par exemple, si je rentre un item dans la table mc avec un id_type_mc à 1
    dans mon tableau jqGrid j'affiche bien le nom correspondant dans ma table de référence `ref_type_mc`. Pour l'affichage donc, pas de soucis, la colonne Type MC m'affiche bien les noms de la table de référence.
    par contre, si je veux rentrer un nouvel item, dans le formulaire, il y a bien un champ Type MC mais comment proposer dans ce formulaire une liste déroulante avec en proposant ma table de référence ref_type_mc ?
    Car actuellement, je ne peux pas rentrer de nouvel item dans ma table car soit j'y mets un id ( "1" par exemple) soit je saisis un nom contenu dans ma table de référence mais aucun ne fonctionne et mon champ est vide ( donc à 0 dans ma table "mc"

    en espérant avoir été clair

  6. #6
    Membre confirmé
    Homme Profil pro
    A la découverte de la POO
    Inscrit en
    Mai 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : A la découverte de la POO

    Informations forums :
    Inscription : Mai 2009
    Messages : 93
    Par défaut
    Pour résoudre mon probleme de modification / ajout j'ai aussi pensé à mettre en place le tableau de type "input" ici meme dans la demo :
    http://www.trirand.com/blog/jqgrid/jqgrid.html dans Row Editing (new) => input types

    On voit bien par exemple que l'on peut y mettre des cases à cocher transformées à l'affichage en oui/non ( qui correspond dans la bdd à 0/1 ? )
    mais aussi une liste déroulante

    Mais je n'arrive pas à le trouver dans jqSuite/examples ! et le code donné sur les démos est le code généré et pas celui contenu dans grid.php ...

Discussions similaires

  1. [Plugin] [jqGrid] Remplir une liste déroulante par AJAX ?
    Par Odawin dans le forum jQuery
    Réponses: 3
    Dernier message: 10/03/2014, 20h33
  2. Réponses: 1
    Dernier message: 20/01/2014, 11h52
  3. [AC-2007] liste déroulante et jointures
    Par shuggy dans le forum IHM
    Réponses: 2
    Dernier message: 04/05/2011, 11h27
  4. Problème clé de jointure dans liste déroulante
    Par vivicente dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/06/2008, 14h04
  5. [MySQL] Renseigner une liste déroulante dans un formulaire en faisant une jointure.
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/10/2006, 10h12

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