Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jqGrid Act Dziwne ponowne ładowanie danych po wstawieniu i aktualizacji

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" } do jsonReader: {id: "idms_location" } .
  • dodaj gridview: true opcja.
  • dodaj autoencode: true opcja.
  • usuń nieistniejące opcje add:true, del:true właściwości z colModel
  • usuń index właściwości z colModel .
  • 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 zamiast Content-Type: text/html z których obecnie korzystasz. To tylko jedna linia kodu PHP.
  • możesz usunąć {edit:true,add:true,del:true} opcje navGrid - to opcje domyślne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pdo wykonaj błąd Give

  2. pojawia się błąd podczas definiowania nazwy zdarzenia w mysqlworkbench 5.5

  3. Uwierzytelnianie SVN przy użyciu MySQL

  4. ap_pass_brigade nie powiodło się w funkcji handle_request_ipc

  5. mysql error 1364 Pole nie ma wartości domyślnych