PHP+MySQL+AJAX+JSON简单实例
建立数据库:
DROP SCHEMA IF EXISTS tt;
CREATE SCHEMA IF NOT EXISTS tt;
USE tt;
DROP TABLE IF EXISTS t_course;
CREATE TABLE IF NOT EXISTS t_course(
course_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
course_num varchar(30) NOT NULL,
course_name VARCHAR(150) NOT NULL,
course_time SMALLINT UNSIGNED NOT NULL DEFAULT 20,
course_credit DECIMAL(2,1) UNSIGNED NOT NULL DEFAULT 0,
course_property varchar(30) NOT NULL
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT t_course (course_num,course_name,course_time,course_credit,course_property) VALUES("091M5002H","TCP/IP协议及网络编程技术",40,2.0,"专业普及课");
INSERT t_course (course_num,course_name,course_time,course_credit,course_property) VALUES("201M5015H","操作系统安全",40,2.0,"专业普及课");
INSERT t_course (course_num,course_name,course_time,course_credit,course_property) VALUES("201M5016H","高级计算机体系结构",40,2.0,"专业普及课");
INSERT t_course (course_num,course_name,course_time,course_credit,course_property) VALUES("15MGB003H-07","英语-C",40,2.0,"专业必修课");
index.html文件:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>课程管理</title> <link rel="stylesheet" type="text/css" href="css/main.css"> </head> <body> <div class="container"> <h2>课程管理</h2> </div> <div class="container"> <div class="course"> <table class="data"> <tr> <td>课程编号</td> <td style="width:300px">课程名称</td> <td>课时</td> <td>学分</td> <td style="width:300px">课程属性</td> <td style="width:240px;"> <a id="addCourse" class="addCourse" href="javascript:;"/>添加课程</a> </td> </tr> </table> </div> </div> <script type="text/javascript" src="js/jquery-3.1.1.min.js"> </script> <script type="text/javascript" src="js/course.js"> </script> </body> </html>
main.css文件:
body{
background-color:#ffffff;
text-align:center;
}
.container {
margin-top:60px;
}
.course{
margin-left:30px;
}
td {
font-size:20px;
width:200px;
height:40px;
text-align:center;
color:black;
background-color:white;
}
.addCourse:hover{
background-color:#aaaacc;
}
.addCourse{
text-decoration:none;
cursor:pointer;
}
input.txtField{
width:100px;
height:30px;
}js文件:
首先去jquery官网http://jquery.com/下载:
jquery-3.1.1.min.js
jquery-3.1.1.js
二者的不同请问搜索引擎
course.js:
$(function(){
var g_table = $("table.data");
var init_data_url = "data.php?action=init_data_list";
$.get(init_data_url,function(data){
var row_items = $.parseJSON(data);
for( var i = 0 , j = row_items.length ; i < j ; i++) {
var data_dom = create_row(row_items[i]);
g_table.append(data_dom);
}
});
function create_row(data_item){
var row_obj = $("<tr></tr>");
for(var k in data_item){
if("course_id" != k){
var col_td = $("<td></td>")
col_td.html(data_item[k]);
row_obj.append(col_td);
}
}
//delButton
var delButton = $("<a class="optLink" href="javascript:;">删除 </a>");
delButton.attr("dataid",data_item["course_id"]);
delButton.click(delHandler);
//editButton
var editButton = $("<a class="optLink" href="javascript:;">编辑 </a>");
editButton.attr("dataid",data_item["course_id"]);
editButton.click(editHandler);
var opt_td = $("<td></td>");
opt_td.append(delButton);
opt_td.append(editButton);
row_obj.append(opt_td);
return row_obj;
}
//delHandler
function delHandler(){
var data_id = $(this).attr("dataid");
var meButton = $(this);
$.post("data.php?action=del_row",{dataid:data_id},function(res){
if("ok" == res) {
$(meButton).parent().parent().remove();
} else {
alert("删除失败!");
}
});
}
//editHandler
function editHandler(){
var data_id = $(this).attr("dataid");
var meButton = $(this);
var meRow = $(this).parent().parent();
var editRow = $("<tr></tr>");
for(var i = 0 ; i < 5 ; i++){
var editTd = $("<td><input type="text" class="txtField"/></td>");
var v = meRow.find("td:eq("+i+")").html();
editTd.find("input").val(v);
editRow.append(editTd);
}
var opt_td = $("<td></td>");
//saveButton
var saveButton = $("<a href="javascript:;" class="optLink">保存 </a>");
saveButton.click(function(){
var currentRow = $(this).parent().parent();
var input_fields = currentRow.find("input");
var post_fields = {};
post_fields["course_num"] = input_fields[0].value;
post_fields["course_name"] = input_fields[1].value;
post_fields["course_time"] = input_fields[2].value;
post_fields["course_credit"] = input_fields[3].value;
post_fields["course_property"] = input_fields[4].value;
post_fields["course_id"] = data_id;
$.post("data.php?action=edit_row",post_fields,function(res){
if("ok" == res){
var newUpdateRow = create_row(post_fields);
currentRow.replaceWith(newUpdateRow);
} else {
alert("数据更新失败!");
}
});
});
//cancelButton
var cancelButton = $("<a href="javascript:;" class="optLink">取消 </a>");
cancelButton.click(function(){
var currentRow = $(this).parent().parent();
meRow.find("a:eq(0)").click(delHandler);
meRow.find("a:eq(1)").click(editHandler);
currentRow.replaceWith(meRow);
});
opt_td.append(saveButton);
opt_td.append(cancelButton);
editRow.append(opt_td);
meRow.replaceWith(editRow);
}
//addCourse
$("#addCourse").click(function(){
var addRow = $("<tr></tr>");
for(var i = 0 ; i < 5 ; i++){
var col_td = $("<td><input type="text" class="txtField"/></td>");
addRow.append(col_td);
}
var col_opt = $("<td></td>");
//confirmButton
var confirmBtn = $("<a href="javascript:;" class="optLink">确认 </a>");
confirmBtn.click(function(){
var currentRow = $(this).parent().parent();
var input_fields = currentRow.find("input");
var post_fields = {};
post_fields["course_num"] = input_fields[0].value;
post_fields["course_name"] = input_fields[1].value;
post_fields["course_time"] = input_fields[2].value;
post_fields["course_credit"] = input_fields[3].value;
post_fields["course_property"] = input_fields[4].value;
$.post("data.php?action=add_row",post_fields,function(res){
if(0 < res){
post_fields["course_id"] = res;
var postAddRow = create_row(post_fields);
currentRow.replaceWith(postAddRow);
} else {
alert("插入失败!");
}
});
});
//cancelButton
var cancelBtn = $("<a href="javascript:;" class="optLink">取消 </a>");
cancelBtn.click(function(){
$(this).parent().parent().remove();
});
col_opt.append(confirmBtn);
col_opt.append(cancelBtn);
addRow.append(col_opt);
g_table.append(addRow);
});
});LAMP实验环境
在浏览器地址栏输入:localhost/course.结果如下,可以实现实时编辑表格,添加课程,其中用到了ajax异步请求,数据传输过程用到了json的数据格式
小实验基本结构:
——css
——main.css
——js
——jquery-3.1.1.min.js
——data.php
——index.html
参考:http://www.imooc.com/learn/754,PHP+AJAX实现表格实时编辑
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了
