2009-08-12 11 views
0

J'ai le problème que je ne peux pas envoyer un identifiant pour le contenu édité dans le fichier edit.php. il envoie automatiquement un id = 1 paramètre pour la première ligne dans la grille par exemple ... mais ce n'est pas la même valeur que dans la colonne de table mysql "id". l'id correct est montré dans la grille .. il dit l'id 3 dans la première rangée, mais quand je édite des données et l'enregistre, l'id de grille est montré comme 1. comment puis-je envoyer et corriger l'identificateur à edit.php?Enregistrer la cellule modifiée dans mysql - Comment envoyer un identifiant avec les données de cellule modifiées?

Merci d'avance pour votre aide.

C'est le code js pour la grille, la partie php fonctionne, seul le mauvais paramètre get lui est transmis depuis la grille.

  jQuery("#statsgrid").jqGrid(
      { 
      url:'modules/json.php?stats=true', 
      datatype: 'json', 
      mtype: 'POST', 
       colNames:['ID', 'Nickname','Country', 'IP', 'Notes'], 
       colModel: 
       [ 
        {name:'id',index:'id', width:90}, 
        {name:'nick',index:'nick', width:90}, 
        {name:'country',index:'country', width:80}, 
        {name:'ip',index:'ip', width:100}, 
        {name:'note',index:'note', width:150, sortable:false, editable:true, editoptions:{size:10}} 
       ], 
      pager: '#statspager', 
      rowNum:10, 
      rowList:[10,20,30,50,100], 
      sortname: 'nick', 
      sortorder: 'desc', 
      height: '100%', 
      viewrecords: true, 
      editurl: 'modules/edit.php', 
      caption: 'Statistics' 
     }).navGrid("#statspager", 
     {}, //options 
     {height:280,reloadAfterSubmit:false,url:'modules/edit.php'}, // edit options 
     {height:280,reloadAfterSubmit:false}, // add options 
     {reloadAfterSubmit:false}, // del options 
     {} // search options 
     ); 
+0

Vous devez fournir plus de contexte. Tout ce que nous devons faire, c'est ce que vous avez écrit là-bas. Des informations de code et de schéma réduites seraient utiles. –

Répondre

0

ajouter un nom de classe supplémentaire avec l'identifiant db préfixé par une chaîne:

<td class="something table_column_123">value</td> 

Et Parse sur table_column_123 lors de l'envoi de retour

+0

Je ne comprends pas ce que vous voulez dire, désolé .... je suis à peu près un nouveau quand il s'agit de js. l'id correct est montré dans la grille, mais le mauvais est passé à edit.php ... alors comment puis-je contrôler les postdata de la grille à edit.php? –

0

Configurer le JSONReader d'utiliser l'ID DB au lieu de un ID généré en ajoutant:

jsonReader: { 
    id: "id" 
} 

... à l'appel de jqGrid.

Notez toutefois qu'il s'agit de la valeur par défaut. Si la grille ne détecte pas déjà vos identifiants, il se passe quelque chose que vous ne nous avez pas montré, ou l'exemple ci-dessus n'est pas réellement ce que vous faites.

+0

oui, je viens de comprendre ce qui ne va pas .... j'ai créé les données json dans un mauvais sens ... j'ai fait des cellules pseudonyme isntead de cellules id. : D merci pour votre aide. –

0

Vous pouvez également essayer d'ajouter la propriété "clé" à votre ligne ID dans le colmodel. Voir la documentation à ce sujet here