Zweryfikowałem kod, którego użyłeś i znalazłem przyczynę. Miałeś id
zduplikowany problem w kodzie . Zdefiniowałeś <table>
element używany dla jqGrid w następujący sposób
<table id="location"><tr><td /></tr></table>
<div id="pager-location"></div>
Ma "location"
jako id
. Później zdefiniowałeś
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}
],
gdzie nazwa location
zostanie użyta jako nazwa kolumny. Problem polega na tym, że nazwa kolumny zostanie użyta do zbudowania id
nazwa różnych elementów siatki. Ponadto edycja formularza używa nazwy kolumny bezpośrednio jako id
wartość <input>
pole reprezentujące lokalizację . Po użyciu Dodaj z formularza następujący element
<input name="location" class="FormElement ui-widget-content ui-corner-all" id="location" role="textbox" type="text">
istnieje na stronie z id="location"
także. Jeśli użytkownik zamknie formularz, zostanie on ukryty, ale nie zniszczony. Ponieważ formularz edycji zostanie umieszczony na stronie przed <table id="location">
następny $("#location tbody:first")
używane w linii
nie szukaj więcej stołu, a siatka pozostanie pusta.
To, co powinieneś zrobić, to po prostu zmienić nazwę <table id="location">
do czegoś takiego jak <table id="
grid-location">` lub wybierz inną nazwę. Należy zaktualizować odpowiedni kod JavaScript.
Inne zmiany, które należy wprowadzić w siatce:
- zmień
jsonReader: {repeatitems: true, idms_location: "idms_location" }
dojsonReader: {id: "idms_location" }
. - dodaj
gridview: true
opcja. - dodaj
autoencode: true
opcja. - usuń nieistniejące opcje
add:true, del:true
właściwości zcolModel
- usuń
index
właściwości zcolModel
. - należy naprawić
Content-Type
Nagłówek HTTP, którego używasz w odpowiedzi serwera z danymi JSON. Powinien to byćContent-Type: application/json
zamiastContent-Type: text/html
z których obecnie korzystasz. To tylko jedna linia kodu PHP. - możesz usunąć
{edit:true,add:true,del:true}
opcjenavGrid
- to opcje domyślne.