2012-01-15 18 views
0

jqgridで編集可能なグリッドを作成しようとしていますが、データをデータベースに保存することはできません - おそらく何か本当にシンプルなことはわかっていますが、友人を助けるために。ここに私の最新のhtmlがあります。私はJqGridはデータをデータベースに保存しません

多くのおかげで

...私はグーグル界でのラウンドに行くように見える
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DT…..strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8″ /> 
<title>xxxxxx</title> 
<link rel="stylesheet" type="text/css" href="timesheet_login.css"> 
<link rel="stylesheet" media="print" href="print.css" type="text/css"> 
<link rel="shortcut icon" href="oneline_logo.gif"> 
<link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui-1.8.16.custom.css" /> 
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" /> 

<style type="text/css"> 
html, body { 
    margin: 0; 
    padding: 0; 
    font-size: 75%; 
} 
</style> 

<script src="js/jquery-1.5.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="scripts/js/jqModal.js" type="text/javascript"></script> 
<script src="scripts/js/jqDnR.js" type="text/javascript"></script> 



<script type="text/javascript"> 
$(function(){ 
    $("#rota").jqGrid({ 
    url:'example.php', 
    datatype: "json", 
mtype: 'POST', 
    colNames:['Date', 'HPJ', 'Recycler','CCTV','Assistant'], 
    colModel:[ 
    {name:'date',index:'date', width:90,editable:true}, 
    {name:'hpj',index:'hpj', width:100,editable:true}, 
     {name:'recycler',index:'recycler', width:100,editable:true}, 
     {name:'cctv',index:'cctv', width:100,editable:true}, 
    {name:'assistant',index:'assistant', width:100,editable:true} 
    ], 
rowNum:10, 
    rowList:[10,20,30], 
    pager: '#pcelltbl', 
    sortname: 'date', 
    viewrecords: true, 
    sortorder: "desc", 
    caption:"Cell Edit Example", 
forceFit : true, 
cellEdit: true, 
cellsubmit: 'clientArray', 
editurl:'example.php?action=save' 
}); 

jQuery("#rota").jqGrid('navGrid','#pgwidth',{edit:false,add:false,del:false}); 
}); 
</script> 


</head> 
<body> 

<div id="topcontent"> 
<br><br> 
</div><!– end topcontainer –> 

<div id="centercontent"> 

<table id="rota"><tr><td/></tr></table> 
<div id="pager"></div> 

<script src="celledit.js" type="text/javascript"> </script> 

</div> 

<div id="footercontent"> 
</div><!– end footercontent –> 

</body> 
</html> 

example.php:セルの編集のthe documentation

<?php 
$dbhost = xxxxx.com'; $dbuser = 'xxx'; $dbpassword = 'xxx'; $dbdatabase = xxxx; 

$page = $_REQUEST['page']; // get the requested page 
$limit = $_REQUEST['rows']; // get how many rows we want to have into the grid 
$sidx = $_REQUEST['sidx']; // get index row - i.e. user click to sort 
$sord = $_REQUEST['sord']; // get the direction 
if(!$sidx) $sidx =1; 

// connect to the database 
$db = mysql_connect($dbhost, $dbuser, $dbpassword) or die("Connection Error: " . mysql_error()); 
mysql_select_db($dbdatabase) or die("Error conecting to db."); 
$result = mysql_query("SELECT COUNT(*) AS count FROM rota"); 
$row = mysql_fetch_array($result,MYSQL_ASSOC); 
$count = $row['count']; 


if($count >0) { 
    $total_pages = ceil($count/$limit); 
} else { 
    $total_pages = 0; 
} 
if ($page > $total_pages) $page=$total_pages; 
$start = $limit*$page - $limit; // do not put $limit*($page - 1) 
if($start <0) $start = 0; 


$SQL = "SELECT date, hpj, recycler, cctv, assistant FROM rota ORDER BY $sidx $sord LIMIT $start , $limit"; 
$result = mysql_query($SQL) or die("Couldn t execute query.".mysql_error()); 

$responce->page = $page; 
$responce->total = $total_pages; 
$responce->records = $count; 
$i=0; 
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) { 
    $responce->rows[] = array('id'=>$row['date'], "cell"=>array($row['date'], $row['hpj'], $row['recycler'], $row['cctv'], $row['assistant'])); 



}   
echo json_encode($responce); 

?> 
+0

データベースにデータを保存するコードがWebサーバー上にありますか?例:example.phpのコード –

答えて

0

ルック。 cellsubmit: 'clientArray'の代わりにcellsubmit: 'remote'cellurlを使用する必要があります。もちろん、データベースの変更を保存するコードをサーバー部分(cellurl URLで参照)に書き込む必要があります。オプションediturlは、インライン編集とフォーム編集に使用されるURLを定義しますが、セルの編集には使用しません。

+0

私は今editurlを使用しています - データをデータベースに保存できるようにするには、PHPファイルにする必要がありますか? – user1150262

+0

@ user1150262:[the documentation](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing#properties)をお読みください。 'cellsubmit'のドキュメントは、送られたデータのフォーマットを記述します。 [Fiddler](http://www.fiddler2.com/fiddler2/)または[Firebug](http://getfirebug.com/)を使用して、サーバーにHTTPリクエストで送信するデータを調べることができます。私はPHPを自分で使用しないので、PHPの実装に関するヒントを多く与えることはできません。 – Oleg

関連する問題