欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP – EasyUI DataGrid 資料取的方式介紹

 更新時(shí)間:2012年11月07日 12:02:44   作者:  
EasyUI DataGrid 是一個(gè)用 Jquery 寫的 DataGrid,由此可知,是一個(gè) 前端 Web UI 技術(shù);當(dāng)要對(duì)該 DataGrid 操作時(shí),在傳遞參數(shù)到后端,重新產(chǎn)生整各網(wǎng)頁(yè)
EasyUI DataGrid 是一個(gè)用 Jquery 寫的 DataGrid,由此可知,是一個(gè) 前端 Web UI 技術(shù),一般大家在產(chǎn)生 DataGrid 比較常見的應(yīng)該就是使用后臺(tái) PHP 等后臺(tái)語(yǔ)言,來(lái)直接產(chǎn)生 HTML 語(yǔ)法,來(lái)顯示 DataGrid,當(dāng)要對(duì)該 DataGrid 操作時(shí),在傳遞參數(shù)到后端,重新產(chǎn)生整各網(wǎng)頁(yè)。

而 EasyUI DataGrid 支援兩種做法,一個(gè)是,上述,后臺(tái) server 把顯示的 HTML 產(chǎn)生好,在給前端顯示。另一種是,利用 AJAX 的方式來(lái)產(chǎn)生,就只是單純喂 JSON 格式資料給前端,前端接收到資料后,在自己分析資料利用 JQuery 來(lái)刷新 DataGrid 該部分的畫面。

這邊介紹的是第二種做法,利用 AJAX 技術(shù)來(lái)做,這樣的好處,是可以把 資料層-> 控制層-> 展示層 三層獨(dú)立來(lái)運(yùn)作,達(dá)到我在之前 多層次架構(gòu)設(shè)計(jì)前言 所講的精神,不會(huì)像老方法,把 HTML 的產(chǎn)生都放在 PHP 中來(lái)產(chǎn)生,造成 PHP 開發(fā)人員本身,也要對(duì) HTML 等前端技術(shù)也要了解很深才能進(jìn)行開發(fā)的問(wèn)題。

在來(lái)如此作法,為帶來(lái)另一種好處,就是你前端的 UI 是可以更換,而后臺(tái)程式卻不用來(lái)大幅修改。目前支援 JSON 資料格式的 JavaScript DataGrid 有很多各,大家也可以多去參考其他的公司所提供的 DataGrid ,從中選擇一個(gè)最適合的來(lái)使用。

介紹到此,接下來(lái)直接看程式碼,會(huì)更加了解我上述的意思:

首先,需要先設(shè)計(jì) HTML UI 介面,定義要顯示哪些欄位,欄位的顯示名稱等,關(guān)于這部分的欄位定義,EasyUI DataGrid 也是有提供,使用 JavaScript 來(lái)動(dòng)態(tài)定義,而我習(xí)慣用 HTML 直接定義,這樣 也不復(fù)雜,后面在分工上,也比較容易來(lái)直接交給 Web 美工人員來(lái)直接操作。

這部分重點(diǎn)在 URL 的設(shè)定。
DataGrid2.php

復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="jquery,ui,easy,easyui,web">
<meta name="description" content="easyui help you build your web page easily!">
<title>一條小龍 easyUI datagrid</title>
<link rel="stylesheet" type="text/css" href="./JS/EasyUI/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="./JS/EasyUI/themes/icon.css">

<script type="text/javascript" src="./JS/jquery.js"></script>
<script type="text/javascript" src="./JS/EasyUI/jquery.easyui.min.js"></script>

</head>
<body>
<h2>一條小龍 easyUI datagrid url test</h2>

<table id="tt" class="easyui-datagrid" style="width:750px;height:300px"
url="datagrid2_getdata.php" title="Load Data" pagination="true">
<thead>
<tr>
<th field="UNum" width="80">UNum</th>
<th field="STUID" width="120">User ID</th>
<th field="Password" width="80" align="right">Password</th>
<th field="Birthday" width="80" align="right">Birthday</th>
<th field="Nickname" width="200">Nickname</th>
<th field="DBSTS" width="60" align="center">DBSTS</th>
</tr>
</thead>
</table>

</body>
</html>

在來(lái)定義資料取得的后臺(tái)介面
datagrid2_getdata.php
復(fù)制代碼 代碼如下:

<?php
$page = isset($_POST['page']) ? intval($_POST['page']) : 1;
$rows = isset($_POST['rows']) ? intval($_POST['rows']) : 10;
$offset = ($page-1)*$rows;
$result = array();

$tablename = "STUser";
// ...
require_once(".\db\DB_config.php");
require_once(".\db\DB_class.php");

$db = new DB();
$db->connect_db($_DB['host'], $_DB['username'], $_DB['password'], $_DB['dbname']);
$db->query("select count(*) As Total from $tablename");
$row = $db->fetch_assoc();

$result["total"] = $row["Total"];

$db->query("select * from $tablename limit $offset,$rows");

$items = array();
while($row = $db->fetch_assoc()){
array_push($items, $row);
}
$result["rows"] = $items;

echo json_encode($result);
?>

由上述,可以看出,這是一個(gè)很單純的資料取得的動(dòng)作。
一開始 DataGrid 會(huì)傳進(jìn)來(lái) 兩個(gè)參數(shù),
$_POST['page']) 目前是在第幾頁(yè)
$_POST['rows']) 每頁(yè)要顯示幾筆資料

然后,要使用一個(gè)陣列 $result ,存放兩個(gè)資訊,
$result["total"] 有幾筆資料
$result["rows"] 存放實(shí)際的資料陣列集
最后要將 $result 陣列,產(chǎn)生將 JSON 資料格式來(lái)輸出,DataGrid 接收到以后就會(huì)來(lái)處理、刷新畫面了。

后面,在更進(jìn)一步,可以將 datagrid2_getdata.php 在抽象化一層,也就是將屬于 EasyUI DataGrid 特有的資料格式處理的部分與資料庫(kù)存取的的部分分離,各自獨(dú)立出來(lái)成為 兩個(gè) class 來(lái)處理。

一個(gè)好的架構(gòu) 以及 class 設(shè)計(jì),其實(shí)都是靠經(jīng)驗(yàn)的累積而生成的,不斷演進(jìn)改良,原有的框架,其中最重要的精神就是,每個(gè) Class 的分工要清楚而且精確,這是為了應(yīng)付上述,不斷演進(jìn) 這各問(wèn)題來(lái)做的對(duì)應(yīng)措施,這樣在未來(lái)才更容易去做修改調(diào)整。

否則更容易變成,你想改卻不知從何下手,因?yàn)橐桓木陀袔资В踔辽习僦С淌降戎?,要一起修改,從而延伸出,穩(wěn)定性問(wèn)題,也就是大家反對(duì)去修改原有系統(tǒng),就是因?yàn)?太多要改了,少改一支也不行,問(wèn)題幾十支一起改,就算都改完,誰(shuí)來(lái)測(cè)試有沒有改好,難道叫你的 user 來(lái)幫你測(cè),想想,就還是算了,不要再改了,反正現(xiàn)在系統(tǒng)也都還好好的可以用。
  • 使用sockets:從新聞組中獲取文章(二)

    使用sockets:從新聞組中獲取文章(二)

    使用sockets:從新聞組中獲取文章(二)...
    2006-10-10
  • PHP hebrev()函數(shù)用法講解

    PHP hebrev()函數(shù)用法講解

    今天小編就為大家分享一篇關(guān)于PHP hebrev()函數(shù)用法講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • PHP的歷史和優(yōu)缺點(diǎn)

    PHP的歷史和優(yōu)缺點(diǎn)

    PHP的歷史和優(yōu)缺點(diǎn)...
    2006-10-10
  • php file_exists 檢查文件或目錄是否存在的函數(shù)

    php file_exists 檢查文件或目錄是否存在的函數(shù)

    其實(shí)于php教程 file_exists 函數(shù)與 file_exists語(yǔ)法我們?cè)缇椭v過(guò)了,下面我們來(lái)看看一下關(guān)于它的使用方法與實(shí)例吧
    2010-05-05
  • 我的論壇源代碼(七)

    我的論壇源代碼(七)

    我的論壇源代碼(七)...
    2006-10-10
  • php adodb分頁(yè)實(shí)現(xiàn)代碼

    php adodb分頁(yè)實(shí)現(xiàn)代碼

    php利用adodb分頁(yè)實(shí)現(xiàn)代碼
    2009-03-03
  • 一個(gè)分頁(yè)的論壇

    一個(gè)分頁(yè)的論壇

    一個(gè)分頁(yè)的論壇...
    2006-10-10
  • PHP中實(shí)現(xiàn)進(jìn)程間通訊

    PHP中實(shí)現(xiàn)進(jìn)程間通訊

    PHP中實(shí)現(xiàn)進(jìn)程間通訊...
    2006-10-10
  • 多文件上傳的例子

    多文件上傳的例子

    多文件上傳的例子...
    2006-10-10
  • 最新評(píng)論