AJax技术

PHP访问MySql数据库 高级篇 AJAX技术

字号+ 作者:H5之家 来源:H5之家 2015-12-23 14:15 我要评论( )

先说说二叉树的存储结构,跟很多其它模型一样,也有顺序和链式两种方式。前者虽然使用简单,但是存在浪费空间的问题,举个例子,下图的二叉树,用顺序的方式存储

在前面的文章,我们已经开发了一个能够读取数据库并显示数据的程序,且程序达到了良好的界面与逻辑分离。但是这个程序并不能支持我们对数据库进行增加、删除和修改操作。因此在这里增加这些功能。每次增加删除或修改数据时,通过AJAX方式向后台发送请求,再根据后台的返回结果调整页面显示。这种方法可以减轻服务器的负担。

 

下面先简单的介绍下AJAX,然后给出完整的示例:

AJAX 是一种独立于 Web 服务器软件的浏览器技术。它不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。通过 AJAX方式,可使用 JavaScript 的XMLHttpRequest 对象来直接与服务器进行通信。这样便可以在不重载页面的情况与 Web 服务器交换数据。同时AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX手册可以访问

 

下面是本系列中功能最为全面的程序——从test数据库的t_student表中读取数据然后显示,同时支持对t_student表进行AJAX方式的增加、删除和修改操作。在界面功能上也有表格的奇偶行变色及鼠标经过变色,使得程序更加的美观。

程序共分为8个文件,分别为smarty2.php、smarty2.html、smarty2_head.php、smarty2.js和smarty2.css及新增加的insert.php、delete.php及updata.php。

1.smarty2_head.php文件

定义数据库相关的常量,变量数组。数据库名,用户名与密码,表名等在此定义。

<?php // by MoreWindows( ) define(DB_HOST, 'localhost'); define(DB_USER, 'root'); define(DB_PASS, '111111'); define(DB_DATABASENAME, 'test'); define(DB_TABLENAME, 't_student'); $dbcolarray = array('id', 'name', 'age'); ?>

2.smarty2.php文件

<?php // by MoreWindows( ) header("Content-Type: text/html; charset=utf-8"); require('../../smart_libs/Smarty.class.php'); require_once('smarty2_head.php'); date_default_timezone_set("PRC"); //mysql_connect $conn = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("connect failed" . mysql_error()); mysql_select_db(DB_DATABASENAME, $conn); //个数 $sql = sprintf("select count(*) from %s", DB_TABLENAME); $result = mysql_query($sql, $conn); if ($result) { $dbcount = mysql_fetch_row($result); $tpl_db_count = $dbcount[0]; } else { die("query failed"); } $tpl_db_tablename = DB_TABLENAME; $tpl_db_coltitle = $dbcolarray; //表中内容 $tpl_db_rows = array(); $sql = sprintf("select %s from %s", implode(",",$dbcolarray), DB_TABLENAME); $result = mysql_query($sql, $conn); while ($row = mysql_fetch_array($result, MYSQL_ASSOC))//等价$row=mysql_fetch_assoc($result) $tpl_db_rows[] = $row; mysql_free_result($result); mysql_close($conn); $tpl = new Smarty; $tpl->assign('db_tablename', $tpl_db_tablename); $tpl->assign('db_count', $tpl_db_count); $tpl->assign('db_coltitle', $tpl_db_coltitle); $tpl->assign('db_rows', $tpl_db_rows); $tpl->display('smarty2.html'); ?>

3.smarty2.html文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""> <html xmlns=""> <head> <link href="smarty2.css" rel="stylesheet" type="text/css" media="all" /> <script type="text/javascript" src="../jquery-1.7.min.js"></script> <script type="text/javascript" src="smarty2.js"></script> <title>{$smarty.const.DB_TABLENAME}</title> </head> <body> <h1>表名:{$db_tablename}</h1> <table id="Table" border="1" align="center" cellpadding="10" cellspacing="2" bordercolor="#ffaaoo"> <caption style="font-size:15px">当前记录数:<label id="tableRowCount">{$db_count}</label>     <input type="button" value="Add" onclick="addFun()" /> </caption> {foreach $db_coltitle as $col} <th>{$col}</th> {/foreach} <th>操作</th> {foreach $db_rows as $dbrow} <tr> {foreach $dbrow as $k=>$val} <td>{$val}</td> {/foreach} <td> <input type="button" value="Edit" onclick="editFun('{$dbrow['id']}', '{$dbrow['name']}', '{$dbrow['age']}');" /> <input type="button" value="Delete" onclick="deleteFun('{$dbrow['id']}')" /> </td> </tr> {/foreach} </table> <div id="editdiv" style="display:none;color:red;" align="center"> <form> id:<input type=text id="editdiv_id" readonly="true" /> name:<input type=text id="editdiv_name" /> age:<input type=text id="editdiv_age" /> <input type=button name="Updata" value="Updata" onclick="updataFun()" /> </form> </div> <div id="adddiv" style="display:none;color:green;" align="center"> <form> name:<input type=text id="adddiv_name" /> age:<input type=text id="adddiv_age" /> <input type=button name="Insert" value="Insert" onclick="insertFun()" / > </form> </div> </body> </html>

4.smarty2.js文件

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • ajax技巧制作得在线歌词搜索功效

    ajax技巧制作得在线歌词搜索功效

    2016-02-06 14:47

  • 客户端访问webservice基础

    客户端访问webservice基础

    2016-01-17 17:16

  • 联合利用技巧先容之Ajax安全基础

    联合利用技巧先容之Ajax安全基础

    2015-11-22 17:25

  • 【ExtJS4学习笔记03】Ajax远程访问数据源示例

    【ExtJS4学习笔记03】Ajax远程访问数据源示例

    2015-11-15 15:00

网友点评
d