2010-11-24 3 views
0

Hallo, ich versuche für zwei Wochen, dass mein jqgrid ohne Erfolg funktioniert. Ich weiß nicht viel über diese Lenguaje. Ich mache, dass das Raster mir die Daten aus der Datenbank bringt, aber jedes Mal, wenn ich eine neue Zeile bearbeite oder hinzufüge, ändert sich die Änderung nicht auf der Datenbank, sondern nur auf dem Bildschirm. dann aktualisiere ich die Seite, die der Chage verschwindet. Hilfe!!!!jqgrid, help Hinzufügen, Edditing und Löschen von Zeilen


dies ist die datos.js

jQuery("#grid_id").jqGrid({ 
    url:'conec.php', 
datatype: "json", 
colNames:['id','name', 'record_id', 'created_at','updated_at','deleted_at'], 
colModel:[ 
    {name:'id',index:'id', width:55,editable:false,editoptions:{readonly:true,size:10}}, 
    {name:'name',index:'name', width:80,editable:true,editoptions:{size:10}}, 
    {name:'record_id',index:'record_id', width:90,editable:true,editoptions:{size:25}}, 
    {name:'created_at',index:'created_at', width:60, align:"right",editable:true,editoptions:{size:10}}, 
    {name:'updated_at',index:'updated_at', width:60, align:"right",editable:true,editoptions:{size:10}}, 
    {name:'deleted_at',index:'deleted_at', width:60,align:"right",editable:true,editoptions:{size:10}}, 
    ], 
rowNum:10, 
rowList:[10,20,30], 
pager: '#gridpager', 
sortname: 'id', 
viewrecords: true, 
sortorder: "desc", 
caption:"Navigator Example", 
editurl:"editurl.php", 
height:210}); 
jQuery("#grid_id").jqGrid('navGrid','#gridpager', 
{}, //options 
{height:280,reloadAfterSubmit:false}, // edit options 
{height:280,reloadAfterSubmit:false}, // add options 
{reloadAfterSubmit:false}, // del options 
{} // search options 
); 

Dies ist die index.html

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>My First Grid</title> 

<link rel="stylesheet" type="text/css" media="screen" href="css/ui-lightness/jquery-ui-  1.8.6.custom.css" /> 
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" /> 

<style type="text"> 
    html, body { 
    margin: 0;   /* Remove body margin/padding */ 
    padding: 0; 
    overflow: hidden; /* Remove scroll bars on browser window */ 
    font-size: 75%; 
    } 
</style> 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Documento sin t&iacute;tulo</title> 
</head> 

<body> 
<table id="grid_id"></table> 
<div id="gridpager"></div> 
</body> 
<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script> 
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script> 
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> 
<script src="datos.js" type="text/javascript"></script> 
</html> 

dies der conec.php ist (die conection)


ist dies die lib.php

<?php 
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpassword = ""; 
$database = "taskmaker"; 
?> 

das ist alles.

+0

Sie enthalten nicht die Ode der 'editurl.php', die der wichtigste Teil bei Änderungen auf der Serverseite ist. Außerdem sollten Sie eine '' Deklaration (siehe zB http://www.w3schools.com/tags/tag_DOCTYPE.asp) mindestens in der Form' 'angeben. – Oleg

Antwort

1

jqGrid unterstützt verschiedene Möglichkeiten, den Inhalt der Raster zu bearbeiten: cell editing, inline editing, form editing. Ihr aktueller Code lautet form editing. Sie können die Bearbeitung live in the demo sehen. Wählen Sie auf der linken Seite den Eintrag "Live Data Manipulation" und dann "Navigator". Siehe auch "Zeilenbearbeitung"/"Eingabetypen", um zu verstehen, wie inline editing aussehen kann.

Nachdem der Benutzer die Zeilenbearbeitung beendet und auf die Schaltfläche "Submit" geklickt hat, werden die Informationen über die hinzugefügte/geänderte/gelöschte Zeile an die URL des Parameters editurl des jqGrid (editurl.php in Ihrem Fall) gesendet. Zusammen mit den Zeilendaten, als der zusätzliche Parameter, wird oper gepostet, was "add", "edit" oder "del" Zeichenkette und die id sein wird, die "_empty" sein kann, wenn eine neue Reihe hinzugefügt wird. Im Falle des Hinzufügens der neuen Zeile muss Ihr Server-Code die id der neu hinzugefügten Zeile zurückgeben. Es ist sehr hilfreich, Fiddler oder Firebug zu verwenden, um zu sehen, was während der Zeilenbearbeitung an den Server gesendet und von ihm zurückgegeben wird.

So ist die Implementierung der editurl.php was Sie in Ihrem Server-Code vermissen.

Verwandte Themen