J'ai vérifié le code que vous avez utilisé et trouvé la raison. Vous aviez id
problème de duplication dans votre code . Vous avez défini <table>
élément utilisé pour jqGrid comme suit
<table id="location"><tr><td /></tr></table>
<div id="pager-location"></div>
Il a "location"
comme id
. Plus tard, vous avez défini
colModel: [
{name:'idms_location',index:'idms_location', width:150, editable:true,add:true, del:true, key:true},
{name:'location',index:'location', width:800,editable:true, add:true, del:true}
],
où le nom location
sera utilisé comme nom de colonne. Le problème est que le nom de la colonne sera utilisé pour construire id
nom des différents éléments de la grille. De plus l'édition du formulaire utilise le nom de la colonne directement comme id
valeur du <input>
champ qui représente l'emplacement . Après utilisation du formulaire Ajouter l'élément suivant
<input name="location" class="FormElement ui-widget-content ui-corner-all" id="location" role="textbox" type="text">
existe sur la page avec id="location"
aussi. Si l'utilisateur ferme le formulaire, il sera masqué, mais pas détruit. Parce que le formulaire d'édition sera placé sur la page avant <table id="location">
le prochain $("#location tbody:first")
utilisé dans la ligne
ne trouve plus la table et la grille reste vide.
Ce que vous devez faire est simplement de renommer <table id="location">
à quelque chose comme <table id="
grid-location">` ou choisissez un autre nom. Vous devez mettre à jour le code JavaScript correspondant.
Autres modifications à effectuer dans la grille :
- modifier
jsonReader: {repeatitems: true, idms_location: "idms_location" }
àjsonReader: {id: "idms_location" }
. - ajouter
gridview: true
option. - ajouter
autoencode: true
option. - supprimer les options inexistantes
add:true, del:true
propriétés decolModel
- supprimer
index
propriétés decolModel
. - vous devez corriger
Content-Type
En-tête HTTP que vous utilisez dans la réponse du serveur avec les données JSON. Il devrait êtreContent-Type: application/json
au lieu deContent-Type: text/html
que vous utilisez actuellement. C'est juste une ligne de code PHP. - vous pouvez supprimer
{edit:true,add:true,del:true}
options denavGrid
- ce sont les options par défaut.