2010-11-24 12 views
0

bonjour j'essaie depuis deux semaines que mon jqgrid fonctionne sans succès. Je ne sais pas grand chose sur ce lenguaje. Je fais que la grille m'apporte les données de base de données mais chaque fois que je modifie ou ajoute une nouvelle rangée le changement n'est pas applie à la base de données seulement changer dans l'écran. alors je rafraîchis la page la chage disparaît. Aidez-moi!!!!jqgrid, aide à ajouter, éditer et supprimer des lignes


Ceci est la 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 
); 

tel est le 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> 

ceci est le conec.php (le conection)

<?php 
include_once 'lib.php'; 

$conexion= mysql_connect('localhost', 'root', ''); 
mysql_select_db("taskmaker", $conexion); 
$result = mysql_query("SELECT id, name, record_id, created_at, updated_at, deleted_at  FROM Team", $conexion); 

$i=0; 
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) { 
$responce->rows[$i]['id']=$row[id]; 
$responce->rows[$i] ['cell']=array($row[id],$row[name],$row[record_id],$row[created_at],$row[updated_at],$row[d eleted_at]); 
$i++; 
} 
echo json_encode($responce); 
?> 

c'est le lib.php

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

c'est tout.

+0

Vous n'incluez pas l'ode du 'editurl.php' qui est la partie la plus importante en cas de modifications côté serveur. De plus, vous devriez inclure une déclaration '' (voir http://www.w3schools.com/tags/tag_DOCTYPE.asp par exemple) au moins sous la forme' '. – Oleg

Répondre

1

jqGrid soutient différentes façons de modifier les contiennent des grilles: cell editing, inline editing, form editing. Votre code actuel utilise form editing. Vous pouvez voir l'édition en direct dans the demo. Choisissez dans l'arborescence de gauche l'élément "Live Data Manipulation" puis "Navigator". Voir aussi "Row Editing"/"Input types" pour comprendre à quoi ressemble inline editing. Une fois que l'utilisateur a terminé l'édition des lignes et appuyé sur le bouton "Envoyer", les informations sur la ligne ajoutée/modifiée/supprimée seront envoyées à l'URL définie par le paramètre editurl de jqGrid (editurl.php dans votre cas). Ensemble avec les données de ligne, en tant que paramètre supplémentaire, sera affiché oper qui sera "add", "edit" ou "del" chaîne et le id qui peut être "_empty" en cas d'ajout d'une nouvelle ligne. En cas d'ajout de la nouvelle ligne, votre code serveur doit renvoyer le id de la nouvelle ligne ajoutée. Il est très utile d'utiliser Fiddler ou Firebug pour voir ce qui sera envoyé et retourné par le serveur pendant la modification de ligne. Par conséquent, l'implémentation de editurl.php est ce que vous manquez dans votre code de serveur.