Verifiqué el código que usaste y encontré el motivo. Tenías id
problema de duplicación en tu código . Ha definido <table>
elemento utilizado para jqGrid de la siguiente manera
<table id="location"><tr><td /></tr></table>
<div id="pager-location"></div>
Tiene "location"
como el id
. Más tarde definiste
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}
],
donde el nombre location
se utilizará como el nombre de la columna. El problema es que el nombre de la columna se usará para construir id
nombre de los diferentes elementos de la grilla. Además, la edición del formulario usa el nombre de la columna directamente como id
valor del <input>
campo que representa la ubicación . Después del uso de Agregar forma el siguiente elemento
<input name="location" class="FormElement ui-widget-content ui-corner-all" id="location" role="textbox" type="text">
existe en la página con id="location"
también. Si el usuario cierra el formulario, se ocultará, pero no se destruirá. Porque el formulario de edición se colocará en la página anterior <table id="location">
el siguiente $("#location tbody:first")
usado en la línea
no encuentres más la tabla y la cuadrícula quedará vacía.
Lo que debe hacer es cambiar el nombre de <table id="location">
a algo como <table id="
grid-location">` o elija cualquier otro nombre. Debe actualizar el código JavaScript correspondiente.
Otros cambios que se deben hacer en la grilla:
- cambie
jsonReader: {repeatitems: true, idms_location: "idms_location" }
ajsonReader: {id: "idms_location" }
. - añadir
gridview: true
opción. - añadir
autoencode: true
opción. - eliminar opciones no existentes
add:true, del:true
propiedades decolModel
- eliminar
index
propiedades decolModel
. - debe corregir
Content-Type
Encabezado HTTP que usa en la respuesta del servidor con datos JSON. Debería serContent-Type: application/json
en lugar deContent-Type: text/html
que usa actualmente. Es solo una línea de código PHP. - puede eliminar
{edit:true,add:true,del:true}
opciones denavGrid
- son las opciones predeterminadas.