Ověřil jsem kód, který jste použili, a našel důvod. Měli jste id
duplicitní problém ve vašem kódu . Definovali jste <table>
prvek použitý pro jqGrid následovně
<table id="location"><tr><td /></tr></table>
<div id="pager-location"></div>
Má "location"
jako id
. Později jste definovali
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}
],
kde je název location
bude použit jako název sloupce. Problém je v tom, že název sloupce bude použit k sestavení id
název různých prvků mřížky. Navíc úprava formuláře používá název sloupce přímo jako id
hodnotu <input>
pole, která představují umístění . Po použití formuláře Přidat následující prvek
<input name="location" class="FormElement ui-widget-content ui-corner-all" id="location" role="textbox" type="text">
existuje na stránce s id="location"
také. Pokud uživatel formulář zavře, bude skrytý, ale nezničí se. Protože editační formulář bude umístěn na stránku před <table id="location">
další $("#location tbody:first")
použité v linka
už tabulku nenajdete a mřížka zůstane prázdná.
Co byste měli udělat, je přejmenovat <table id="location">
na něco jako <table id="
grid-location">` nebo zvolte jakýkoli jiný název. Měli byste aktualizovat odpovídající kód JavaScript.
Další změny, které by měly být provedeny v mřížce:
- změnit
jsonReader: {repeatitems: true, idms_location: "idms_location" }
dojsonReader: {id: "idms_location" }
. - přidejte
gridview: true
možnost. - přidejte
autoencode: true
možnost. - odebrat neexistující možnosti
add:true, del:true
vlastnosti zcolModel
- odebrat
index
vlastnosti zcolModel
. - měli byste opravit
Content-Type
HTTP hlavička, kterou používáte v odpovědi serveru s daty JSON. Mělo by to býtContent-Type: application/json
místoContent-Type: text/html
které aktuálně používáte. Je to jen jeden řádek kódu PHP. - můžete odstranit
{edit:true,add:true,del:true}
možnostinavGrid
- jsou to výchozí možnosti.