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 master-detail


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut jqgrid master-detail
    j'ai le code suivant:
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    <script type="text/javascript">
    var gridimgpath = 'themes/steel/images';
    jQuery(document).ready(function(){
    jQuery("#list10").jqGrid({ 
    	url:'master.php?q=2&ids='+ids, 
    	datatype: "xml", 
    	colNames:['reference', 'composant', 'libelle', 'version', 'quantite','debut','fin'], 	
    	colModel:[ 
    		{name:'reference',index:'reference',  width:90}, 		
    		{name:'composant',index:'composant',  width:90},
    		{name:'libelle',index:'libelle', width:200}, 		
    		{name:'version',index:'version', width:80, align:"right"}, 
    		{name:'quantite',index:'quantite', width:80, align:"right"}, 
    		{name:'debut',index:'debut', width:80,align:"right"}, 
    		{name:'fin',index:'fin', width:80, sortable:false} ], 
    		rowNum:7, 
    		rowList:[10,20,30], 
    		imgpath: gridimgpath, 
    		pager: jQuery('#pager10'), 
    		sortname: 'composant', 
    		viewrecords: true, 
    		sortorder: "asc", 
    		multiselect: false, 
    		datatype: "xml", 
    		caption: "Nomenclature", 
                       onSelectRow: (function(ids) { 
    			if(ids == null) { ids=' '; 
    			if(jQuery("#list10_d").getGridParam('records') >0 ) { 
    				jQuery("#list10_d").setGridParam({
    				url:"detail.php?q=1&id="+ids,page:1}) 
    				.setCaption("Gamme d'\operations: "+composant)      .trigger('reloadGrid'); 
    				} 
    			} else { 
    				jQuery("#list10_d").setGridParam({
    				url:"detail.php?q=1&id="+ids,page:1}) 
    				.setCaption("Gamme d'\operations: "+ids) 
    				.trigger('reloadGrid'); 
    				} 
    			}) 
     
    		}).navGrid('#pager11',{add:false,edit:false,del:false});
     
    })
    .navGrid('#pager10',{add:false,edit:false,del:false}); 
    jQuery(document).ready(function(){
    jQuery("#list10_d").jqGrid({ 
    	height: 120, 
    	url:'detail.php?q=1&id='+ids, 
    	datatype: "xml", 
    	colNames:['reference','version','operation','cfi','preparation','execution'], 
    	colModel:[ 
    		{name:'reference',index:'reference', key:true, width:180}, 
    		{name:'version',index:'version', width:80}, 
    		{name:'operation',index:'operation', width:80, align:"right"}, 
    		{name:'cfi',index:'cfi', width:80, align:"right"}, 
    		{name:'preparation',index:'preparation', width:80, align:"right"}, 		
    		{name:'execution',index:'execution', width:80,align:"right", sortable:false, search:false} ], 
    		rowNum:6, 
    		rowList:[5,10,20], 
    		imgpath: gridimgpath, 
    		pager: jQuery('#pager10_d'), 
    		sortname: 'operation', 
    		viewrecords: true, 
    		sortorder: "asc", 
    		multiselect: false, 
    		caption:"Gamme d'\operations"})
    .navGrid('#pager10_d',{add:true,edit:false,del:false}); 
    jQuery("#ms1").click( function() {
    	var s; 
    	s = jQuery("#list10_d").getMultiRow(); 
    	alert(s); 
    })
    });
    </script>
     
    </head>
     
    <body>
    <!-- Nomenclature --> 
    <table id="list10" class="scroll" cellpadding="0" cellspacing="0"></table> 
    <div id="pager10" class="scroll" style="text-align:center;">
    </div> 
    <!-- <a href="javascript:void(0)" id="ms1">Get Selected id's</a> -->
    <!-- Opérations --> 
    <table id="list10_d" class="scroll" cellpadding="0" cellspacing="0"></table> 
    <div id="pager10_d" class="scroll" style="text-align:center;"></div> 
    <a href="javascript:void(0)" id="ms1">Get Selected id's</a>
    </body>
    </html>
    mais le "onSelectRow: (function(ids) {" ne fonctionne pas.
    Aussi je tiens à préciser que j'aimerais faire la selection sur une donnée bien précise (composant) et non pas sur le row_id.
    merci pour votre aide.

  2. #2
    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.

    Après avoir "mis en forme" le code javascript, si je n'ai pas fait d'erreur, onSelectRow(...) {} est en dehors de l'appel à jqGrid est ce normal ?

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
        <script type="text/javascript">
            var gridimgpath = 'themes/steel/images';
     
            $(document).ready(function(){
                $("#list10").jqGrid({
                    url:'master.php?q=2&ids='+ids,
                    datatype: "xml",
                    colNames:['reference', 'composant', 'libelle', 'version', 'quantite','debut','fin'],
                    colModel:[
                        {name:'reference',index:'reference', width:90},
                        {name:'composant',index:'composant', width:90},
                        {name:'libelle',index:'libelle', width:200},
                        {name:'version',index:'version', width:80, align:"right"},
                        {name:'quantite',index:'quantite', width:80, align:"right"},
                        {name:'debut',index:'debut', width:80,align:"right"},
                        {name:'fin',index:'fin', width:80, sortable:false}
                    ],
                    rowNum:7,
                    rowList:[10,20,30],
                    imgpath: gridimgpath,
                    pager: $('#pager10'),
                    sortname: 'composant',
                    viewrecords: true,
                    sortorder: "asc",
                    multiselect: false,
                    <!-- subGridUrl: 'detail.php?q=2', -->
                    datatype: "xml",
                    <!-- subGridModel: [{ name : ['reference','version','operation','cfi','execution'], width : [55,200,80,80,80] } ], -->
                    caption: "Nomenclature",
                }).navGrid('#pager11',{add:false,edit:false,del:false});
     
     
                onSelectRow: (function(ids) {
                    if(ids == null) {
                        ids=' ';
     
                        if($("#list10_d").getGridParam('records') > 0 ) {
                            $("#list10_d").setGridParam({url:"detail.php?q=1&id="+ids,page:1}).setCaption("Gamme d'\operations: "+composant).trigger('reloadGrid');
                        }
                    } else {
                        $("#list10_d").setGridParam({url:"detail.php?q=1&id="+ids,page:1}).setCaption("Gamme d'\operations: "+ids).trigger('reloadGrid');
                    }
                })
            }).navGrid('#pager10',{add:false,edit:false,del:false});
     
            $(document).ready(function(){
                $("#list10_d").jqGrid({
                    height: 120,
                    url:'detail.php?q=1&id='+ids,
                    datatype: "xml",
                    colNames:['reference','version','operation','cfi','preparation','execution'],
                    colModel:[
                        {name:'reference',index:'reference', key:true, width:180},
                        {name:'version',index:'version', width:80},
                        {name:'operation',index:'operation', width:80, align:"right"},
                        {name:'cfi',index:'cfi', width:80, align:"right"},
                        {name:'preparation',index:'preparation', width:80, align:"right"},
                        {name:'execution',index:'execution', width:80,align:"right", sortable:false, search:false}
                    ],
                    rowNum:6,
                    rowList:[5,10,20],
                    imgpath: gridimgpath,
                    pager: $('#pager10_d'),
                    sortname: 'operation',
                    viewrecords: true,
                    sortorder: "asc",
                    multiselect: false,
                    caption:"Gamme d'\operations"
                }).navGrid('#pager10_d',{add:true,edit:false,del:false});
     
                $("#ms1").click( function() {
                    var s;
                    s = $("#list10_d").getMultiRow();
                    alert(s);
                })
            });
        </script>

    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.)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Salut danielhagnoul !

    Merci pour votre aide. Je vais tester votre proposition et je vous ferai signe.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut bdjamila
    Désolée danielhagnoul
    J'ai corrigé mon erreur mais toujours pas de resultat.
    Merci encore une fois danielhagnoul.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut bdjamila
    Bonsoir
    j'ai mis le onSelectRow(...) {} dans l'appel à jqGrid, puis j'ai déclaré la variable ids comme suit:
    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
    jQuery(document).ready(function(){
    jQuery("#list10").jqGrid({ 
    	url:'master.php?q=2&ids='+ids, 
    	datatype: "xml", 
    	colNames:[ 'composant', 'libelle', 'version', 'quantite','debut','fin'], 	
    	colModel:[ 
    
    		{name:'composant',index:'composant',  width:90},
    		{name:'libelle',index:'libelle', width:200}, 		
    		{name:'version',index:'version', width:80, align:"right"}, 
    		{name:'quantite',index:'quantite', width:80, align:"right"}, 
    		{name:'debut',index:'debut', width:80,align:"right"}, 
    		{name:'fin',index:'fin', width:80, sortable:false} ], 
    		rowNum:7, 
    		rowList:[10,20,30], 
    		imgpath: gridimgpath, 
    		pager: jQuery('#pager10'), 
    		sortname: 'composant', 
    		viewrecords: true, 
    		sortorder: "asc", 
    		multiselect: false, 
    		datatype: "xml", 
    		caption: "Nomenclature", 
    		onSelectRow: (function(ids) { 
    			var ids=['composant'];
    			if(ids == null) { ids=' '; 
    			if(jQuery("#list10_d").getGridParam('records') >0 ) { 
    				jQuery("#list10_d").setGridParam({
    				url:"detail.php?q=1&id="+ids,page:1}) 
    				.setCaption("Gamme d'\operations: "+ids) .trigger('reloadGrid'); 
    				} 
    			} else { 
    				jQuery("#list10_d").setGridParam({
    				url:"detail.php?q=1&id="+ids,page:1}) 
    				.setCaption("Gamme d'\operations: "+ids) 
    				.trigger('reloadGrid'); 
    				} 
    		}) 
    		}).navGrid('#pager11',{add:false,edit:false,del:false});
    maintenant le onselectrow fonctionne mais je n'arrive pas à récupérer les données de la ligne selectionnée.
    j'ai le message d'erreur
    <b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>D :\site\detail.php</b> on line <b>25</b><br /> CouldnÂ't execute query.Unknown column 'composant' in 'where clause'

    donc comment récupérer la valeur de 'composant'?
    je compte beaucoup sur votre collaboration et votre aide, merci.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut

    Bonjour !
    J'ai résolu mon problème. Il suffit de déclaré 'composant' en tant que clé.
    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
    {name:'composant',index:'composant',key:true, width:90} 
     
    appel de la fonction onselectrow:
     
    onSelectRow: (function(ids) {
    if(ids == null) { ids=' ';
    if(jQuery("#list10_d").getGridParam('records') >0 ) {
    jQuery("#list10_d").setGridParam({
    url:"detail.php?q=1&id="+ids,page:1})
    .setCaption("Gamme d'\operations: "+ids) .trigger('reloadGrid');
    }
    } else {
    jQuery("#list10_d").setGridParam({
    url:"detail.php?q=1&id="+ids,page:1})
    .setCaption("Gamme d'\operations: "+ids)
    .trigger('reloadGrid');
    }
    })
    }).navGrid('#pager11',{add:false,edit:false,del:false});

Discussions similaires

  1. [jqgrid] master et detail grid
    Par qltmi dans le forum jQuery
    Réponses: 2
    Dernier message: 26/10/2014, 12h26
  2. Réponses: 6
    Dernier message: 26/10/2007, 11h04
  3. [Tomahawk] [dataTable] Master detail
    Par infonini dans le forum JSF
    Réponses: 3
    Dernier message: 06/09/2007, 11h42
  4. master detail -dbLookupComboBox
    Par atb dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/04/2007, 18h23
  5. [Forms] Debugger/Pb canevas-relation Master/detail
    Par lafouine dans le forum Forms
    Réponses: 16
    Dernier message: 12/08/2005, 18h51

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