sql >> Databáze >  >> RDS >> Mysql

jqGrid Act Strange Znovu načtení dat po vložení a aktualizaci

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>

"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" } do jsonReader: {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 z colModel
  • odebrat index vlastnosti z colModel .
  • 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ýt Content-Type: application/json místo Content-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žnosti navGrid - jsou to výchozí možnosti.



  1. Konstrukce příkazů UPDATE pomocí asociativních polí v PHP

  2. V uživatelské tabulce nelze najít žádný odpovídající řádek

  3. Jak spustit balíček SSIS z .NET?

  4. Jak zjistit velikost indexů v mysql (včetně primárních klíčů)