今天是学习做后台页面布局,用得是bootcss。那么效果展示一下。
布局的代码
[html]
ボディ>
中学生からJavaScript関数を学びましょう
str.substr(0,20) は、0 文字から始まる 20 文字を取ることを意味します
Math.random() は乱数を受け取ります
switch ステートメント
この背景はajaxです。久しぶりにページネーションを書きました。さて、早速コードに進みましょう。
[javascript] // JavaScript Document
$('body').off('.data-api');
$(document).ready(function(e) {
$("#menu a").click(function() {
switch ($(this).text()) {
case '所有留言':
admin_content(1);
break;
case '基本设置':
$("#main #mainData").load('admin_config.html?r='+Math.random());
break;
default:
break;
}
});
$("#start").click();
});
/**
*留言管理
*/
function admin_content(page) {
$.ajax({
url: 'http://localhost/l/admin.php?m=admin&a=content&page=' + page + '&rand=' + Math.random(),
type: 'get',
dataType: 'json',
data: {},
complete: function(xhr, textStatus) {
//called when complete
},
success: function(json, textStatus, xhr) {
if (json['state'] == 'ok') {
var page_start = json['start'];//分页开始
var page_end = json['end'];//分页结束
var page_page = json['page'];//分页当前页面
var data = json['data'];//分页数据
/**
* 生成 表格内容
*/
var table_html = '
操作 | 用户名 | 留言内容 | 发表时间 |
---|---|---|---|
删除 | ' + data[i].userName + ' | ' + data[i].content + ' |
' + getLocalTime(data[i].time) + ' |
// JavaScript ドキュメント
$('body').off('.data-api');
$(ドキュメント).ready(関数(e) {
$("#menu a").click(function() {
switch ($(this).text()) {
case 'すべて留言':
admin_content(1);
休憩;
ケース「基本設置」:
$("#main #mainData").load('admin_config.html?r='+Math.random());
休憩;
デフォルト:
休憩;
}
});
$("#start").click();
});
/**
*留言管理
*/
function admin_content(page) {
$.ajax({
url: 'http://localhost/l/admin.php?m=admin&a=content&page=' + page + '&rand=' + Math.random(),
type: 'get',
dataType: 'json',
data: {},
complete: function(xhr, textStatus) {
//called when complete
},
success: function(json, textStatus, xhr) {
if (json['state'] == 'ok') {
var page_start = json['start'];//分页开始
var page_end = json['end'];//分页结束
var page_page = json['page'];//分页当前页面
var data = json['data'];//分页数据
/**
* 生成 表格内容
*/
var table_html = '
操作 | 用户名 | 留言内容 | 发表时间 |
---|---|---|---|
删除 | ' + data[i].userName + ' | ' + data[i].content + ' |
' + getLocalTime(data[i].time) + ' |
/**
*生成分页
*/
var page_html = '
}
if (page_end !== 0) {
if (page_page == page_end) {
page_html = page_html + '
}
page_html = page_html + '
var mainData = $("#main #mainData");
mainData.html(table_html);
mainData.append(page_html);
admin_content_page(page_page,page_end); //挂接分页点击イベント
}
//alert(json.data);
}、
エラー: function(xhr, textStatus, errorThrown) {
//エラーが発生したときに呼び出されます
}
});
}
/**
* オンフックページングイベント
* パラメータ page_page 現在のページ
* パラメータ page_end ページ数
*/
function admin_content_page(page_page,page_end) {
$("#mainPage a").click(function() {
var charStr = $(this).text();
var num = charStr;
if (charStr == "»") {
num = parseInt(page_page) + 1;
if (page_end
戻ります;
}
} else if (charStr == "«") {
num = parseInt(page_page) - 1;
if (数値
戻ります;
}
}
admin_content(番号);
});
}
関数 admin_content_del (id) {
アラート(ID);
}
関数 getLocalTime(nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:d{1,2}$/, ' ');
}これは分割要求のサービス端代コードです
[php] パブリック関数 content()
{
//導入分页类
「page.class.php」を含める;
//data表のデータ量を取得します
$rows = $this->db->count('select * from data');
//创建分页对象
$page = 新しいページ($rows, 5, "");
$list=$this->db
->order('id DESC')
->テーブル('データ')
->limit($page->getLimit())
->select();
/*
echo "
";<br> var_dump($list);<br> echo "
パブリック関数content()
{
//ページングクラスを導入します
「page.class.php」をインクルードします;
//データテーブル内のデータ数を取得します
$rows = $this->db->count('select * from data');
//ページングオブジェクトを作成します
$page = 新しいページ($rows, 5, "");
$list=$this->db
->order('id DESC')
->テーブル('データ')
->limit($page->getLimit())
->select();
/*
echo "
";<br> var_dump($list);<br> echo "
コードpage.class.phpを添付します
[php]
/**
ファイル: page.class.php
完璧なページングタイプのページ
@WeiliangQQ496928838
*/
クラスページ {
プライベート $total;
プライベート $listRows;
Private $ Limit; // SQL ステートメントはレコード数を制限するために limit 句を使用します
private $uri // URL のリクエストアドレスを自動取得します
;
プライベート $pageNum;
プライベート $page;
private $config = array(
「ヘッド」=>「記録」、
'prev' => "前のページ"、
'next' => "次のページ"、
'first'=>「ホーム」、
「last」 => 「最後のページ」
Private $ listnum = 10 // デフォルトのレイアウトリストで表示される番号
;
/**
コンストラクターメソッドでは、ページングクラスのプロパティを設定できます
「S ’’ ’S」は、一緒に一緒に一緒に一緒に一緒に一緒にアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウト
@Param Int $ Listrows、各ページに必要なレコード数を設定します。デフォルトは 25 です。
@Param Mixed $ Query はターゲット ページへのパラメーターを選択できます。これは配列またはクエリ文字列形式にすることができます
@param bool $ord オプション、デフォルト値は true、ページは最初のページから表示され、false は最後のページになります
*/
public function __construct($total, $listRows=25, $query="", $ord=true){
$this->total = $total; $this->listRows = $listRows;
$this->uri = $this->getUri($query);
$this->pageNum = ceil($this->total / $this->listRows);
/*以下判断用来設置当前面*/
if(!empty($_GET["page"])) {
$page = $_GET["ページ"];
}その他{
if($ord)
$ページ = 1;
その他
$page = $this->pageNum;
}
if($total > 0) {
if(preg_match('/D/', $page) ){
$this->ページ = 1;
}その他{
$this->page = $page;
}
}その他{
$this->ページ = 0;
}
$this->limit = "LIMIT ".$this->getLimit();
}
/**
ページを表示するための情報を設定するために使用され、一貫した操作を実行できます
@param 文字列 $param はメンバー属性配列 config の添字です
@param string $value は、構成の添字に対応する要素の値を設定するために使用されます
@Return Object このオブジェクト自体に戻ります $ this、操作に接続するために使用されます
*/
関数セット($param, $value){
if(array_key_exists($param, $this->config)){
$this->config[$param] = $value;
}
$this を返します。
}
/* 直接去调用ではなく、この方法により、オブジェクト外部で直接取得できるプロパティ制限とページの値を使用できます */
関数 __get($args){
if($args == "制限" || $args == "ページ")
$this->$args; を返します。
その他
null を返します。
}
/**
按指定的格式输出分页
@param int 0-7的数字分别作为参数,用于自定义输出分页结构和调整结构的顺序,默认输出全部结构
@return string 分页信息内容
*/
function fpage(){
$arr = func_get_args();
$html[0] = " 共 {$this->total} {$this->config["head"]} ";
$html[1] = " 本页 ".$this->disnum()." 条 ";
$html[2] = " 本页从 {$this->start()}-{$this->end()} 条 ";
$html[3] = " {$this->page}/{$this->pageNum}页 ";
$html[4] = $this->firstprev();
$html[5] = $this->pageList();
$html[6] = $this->nextlast();
$html[7] = $this->goPage();
$fpage = '
/**
ファイル: page.class.php
完璧なページングタイプのページ
@微クールQQ496928838
*/
クラスページ{
private $total; //データテーブル内のレコードの総数
private $listRows //ページごとの行数を表示します
Private $limit; //SQL ステートメントは、limit 句を使用して取得されるレコードの数を制限します
private $uri //URLのリクエストアドレスを自動取得します
private $pageNum //総ページ数
;
private $page; //現在のページ
private $config = array(
'head' => "レコード",
'prev' => "前のページ",
'next' => "次のページ",
'first'=>
'last' => "最後のページ"
); // ページング情報にコンテンツを表示します。set() メソッドを通じて自分で設定できます
Private $listNum = 10 //デフォルトのページングリストに表示されるアイテムの数
;
コンストラクターメソッドで、ページングクラスの属性を設定できます
@param int $total ページングレコードの総数を計算します
@param int $listRows オプションで、各ページに表示されるレコードの数を設定します。デフォルトは 25 です
@parammixed$queryオプション、ターゲットページにパラメータを渡すために、配列またはクエリ文字列形式にすることができます
@param bool $ord オプション、デフォルト値は true、ページは最初のページから表示され、false は最後のページになります
*/
パブリック関数 __construct($total, $listRows=25, $query="", $ord=true){
$this->total = $total;
$this->listRows = $listRows;
$this->uri = $this->getUri($query);
$this->pageNum = ceil($this->total / $this->listRows);
/*現在の状態を設定するために次の判断が使用されます*/
if(!empty($_GET["page"])) {
$page = $_GET["ページ"];
}その他{
もし($ord)
$ページ = 1;
それ以外
$page = $this->pageNum;
}
If(preg_match('/D/', $page) ){
$this->ページ = 1;
}その他{
$this->page = $page;
}
}その他{
$this->ページ = 0;
}
$this->limit = "LIMIT ".$this->getLimit();
}
/**
用于设置显示分页的信息,可以进行连贯操作
@param string $param 是成员属性数组config的下标
@param string $value 用于设置config下标对应的元素值
@return object 返回本对象自己$this, 用于连惯操作
*/
function set($param, $value){
if(array_key_exists($param, $this->config)){
$this->config[$param] = $value;
}
return $this;
}
/* 不是直接去调用,通过该方法,可以使用在对象外部直接获取私有成员属性limit和page的值 */
function __get($args){
if($args == "limit" || $args == "page")
return $this->$args;
else
return null;
}
/**
按指定的格式输出分页
@param int 0-7的数字分别作为参数,用于自定义输出分页结构和调整结构的顺序,默认输出全部结构
@return string 分页信息内容
*/
function fpage(){
$arr = func_get_args();
$html[0] = " 共 {$this->total} {$this->config["head"]} ";
$html[1] = " 本页 ".$this->disnum()." 条 ";
$html[2] = " 本页从 {$this->start()}-{$this->end()} 条 ";
$html[3] = " {$this->page}/{$this->pageNum}页 ";
$html[4] = $this->firstprev();
$html[5] = $this->pageList();
$html[6] = $this->nextlast();
$html[7] = $this->goPage();
$fpage = '
//現在のページ
関数 getPage(){
$this->page を返す;
}
// ページネーションの開始
関数 getStart(){
$num1=$this->page-4;
$num1>0?$num1:1;
を返す }
//ページネーション終了
関数 getEnd(){
$num1=$this->ページ番号;
$num2=$this->ページ+5;
$num1 }
/* アクセスした現在の URL を自動的に取得するためにオブジェクト内で使用されるプライベート メソッド */
プライベート関数 getUri($query){
$request_uri = $_SERVER["REQUEST_URI"]
$url = strstr($request_uri,'?') ? $request_uri : $request_uri.'?';
If(is_array($query))
$url .= http_build_query($query);
else if($query != "")
$url .= "&".trim($query, "?&");
$arr = parse_url($url);
if(isset($arr["query"])){
Parse_str($arr["クエリ"], $arrs);
unset($arrs["ページ"]);
$url = $arr["path"].'?'.http_build_query($arrs);
}
if(strstr($url, '?')) {
If(substr($url, -1)!='?')
$url = $url.'&';
}その他{
$url = $url.'?';
}
$url を返します;
}
/* 現在のページから始まるレコード数を取得するためにオブジェクト内で使用されるプライベート メソッド */
プライベート関数 start(){
if($this->total == 0)
0 を返す;
それ以外
Return ($this->page-1) * $this->listRows+1;
}
/* 現在のページの末尾のレコード数を取得するためにオブジェクト内で使用されるプライベート メソッド */
プライベート関数 end(){
Return min($this->page * $this->listRows, $this->total);
}
/* 前ページとホームページの操作情報を取得するためにオブジェクト内で使用されるプライベートメソッド */
プライベート関数 firstprev(){
if($this->ページ > 1) {
$str = " {$this->config["first"]} ";
$str .= "{$this->config["prev"] }
;
$str;
を返します
}
}
/* ページリスト情報を取得するためにオブジェクト内で使用されるプライベートメソッド