flexgridでJSONを読んで動的なかっこいい動的な表を作る

flexgridでJSONを読んで動的なかっこいい動的な表を作る

  • まず基本バージョン、とりあえずだせるように

(0)JSONを作る
JSONは""でじゃないとだめ。
JSONの説明: http://hakuhin.jp/js/json.html
grid2.txt を書きをCGIフォルダに保存
を参考に.http://jquery.keicode.com/ext/flexigrid2.php 

{

"page":"1",

"total":"3",

"rows":[

{

"id":"1",

"cell":[ "Column1-1", "Column1-2", "Column1-3", "Column1-4"]

},

{

"id":"2",

"cell":[ "Column2-1", "Column2-2", "Column2-3", "Column2-4"]

},

{

"id":"3",

"cell":[ "Column2-1", "Column2-2", "Column2-3", "Column2-4"]

}

]

}

(1)JSONを出力するcgiをいい加減につくる

#!/bin/sh
echo "Content-type: application/json; charset=utf-8"
echo ""
cd /cgi-bin
cat grid2.txt

(2)表示ファイルをつくる.jquery等のパスは適時直す.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>テーブル+Flexigrid+Ajax</title>

<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">

<script language="javascript" type="text/javascript" src="base/js/jquery-1.11.1.js"></script>

<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
<link href="base/css/flexigrid.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="base/js/flexigrid.js"></script>

<script type="text/javascript">
$(document).ready(function()
{

$("#test_table").flexigrid({
  url: '/cgi-bin/grid2.sh',
  dataType: 'json',

  colModel: [
    {display:'ID',name:'iid',width:40,sortable:true,align:'left'},
    {display:'タイトル',name:'title',width:250,sortable:true,align:'left'},
    {display:'カテゴリ',name:'category',width:150,sortable:true,align:'left'},
    {display:'更新日',name:'pubdate',width:150,sortable:true,align:'left'}
  ],
  rp: 3,
  width: 500,
  height: 400,
  onError: function(res,status,e) {
          alert('err: ' + e + '\n' + 'status: ' + status + '\n' + res.responseText);
        }
});
});

</script>

</head>

<body>

<table id="test_table" style="display:none"></table>

</body>
</html>

エラーチェックのときに参考
http://d.hatena.ne.jp/ugon105/20100417/1271489472
エラーメッセージの表示のさせ方を参考にエラーメッセージをだす.
>>
onError: function(res,status,e) {
alert('err: ' + e + '\n' + 'status: ' + status + '\n' + res.responseText);
}