JSQL 基于客户端的成绩统计实现方法


Posted in Javascript onMay 05, 2010
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Marks Count</title> 
<script type="text/javascript" src="../src/YESBRAIN.js"></script> 
<script type="text/javascript" src="../src/JSQL.js"></script> 
<script type="text/javascript" src="../src/JSQL-Memory.js"></script> 
<script type="text/javascript" src="../src/JSQL-DOM.js"></script> 
<style> 
#marks input { 
width: 100px; 
} 
</style> 
</head> 
<body> 
<center> 
<h1>Marks Count</h1> 
<p> 
<button onclick="insertline();"> Add one line </button> 
<button onclick="savemarks();"> Save Changes </button> 
<span>By<span> 
<select id="byfield"> 
<option value="chinese" selected="selected">Chinese</option> 
<option value="math">Math</option> 
<option value="english">English</option> 
</select> 
<select id="ascdesc"> 
<option value="desc" selected="selected">Desc</option> 
<option value="asc">Asc</option> 
</select> 
<button onclick="order();">Order</button> 
</p> 
<form name="marks" id="marks"> 
<span>Name:</span> 
<input type="text" id="name[1]" value="zhangsan"> 
<span>Sex:</span> 
<input type="text" id="sex[1]" value="female"> 
<span>Chinese:</span> 
<input type="text" id="chinese[1]" value="96"> 
<span>Math:</span> 
<input type="text" id="math[1]" value="94"> 
<span>English:</span> 
<input type="text" id="english[1]" value="98"> 
<br> 
</form> 
</center> 
<script type="text/javascript"> 
var marks = [ 
{ 
name: 'Lisi', 
sex: 'Female', 
chinese: '88', 
math: '90', 
english: '92' 
}, 
{ 
name: 'Wangwu', 
sex: 'Female', 
chinese: '92', 
math: '80', 
english: '82' 
}, 
{ 
name: 'Lilei', 
sex: 'Female', 
chinese: '93', 
math: '88', 
english: '87' 
}, 
{ 
name: 'HanMeimei', 
sex: 'Male', 
chinese: '97', 
math: '92', 
english: '100' 
}, 
{ 
name: 'Wangjuan', 
sex: 'Male', 
chinese: '92', 
math: '93', 
english: '90' 
} 
]; function addto(index,name,sex,chinese,math,english) { 
"insert into marks (nodename,innerHTML) values ('span','Name:')".ForDOM().execute(); 
("insert into marks (nodename,type,id,value) values ('input','text','name[" + (index) + "]','" + name + "')").ForDOM().execute(); 
"insert into marks (nodename,innerHTML) values ('span','Sex:')".ForDOM().execute(); 
("insert into marks (nodename,type,id,value) values ('input','text','sex[" + (index) + "]','" + sex + "')").ForDOM().execute(); 
"insert into marks (nodename,innerHTML) values ('span','Chinese:')".ForDOM().execute(); 
("insert into marks (nodename,type,id,value) values ('input','text','chinese[" + (index) + "]','" + chinese + "')").ForDOM().execute(); 
"insert into marks (nodename,innerHTML) values ('span','Math:')".ForDOM().execute(); 
("insert into marks (nodename,type,id,value) values ('input','text','math[" + (index) + "]','" + math + "')").ForDOM().execute(); 
"insert into marks (nodename,innerHTML) values ('span','English:')".ForDOM().execute(); 
("insert into marks (nodename,type,id,value) values ('input','text','english[" + (index) + "]','" + english + "')").ForDOM().execute(); 
("insert into marks (nodename) values ('br')").ForDOM().execute(); 
}; 
for(var i=0; i<marks.length;i++) { 
addto(i+2,marks[i].name,marks[i].sex,marks[i].chinese,marks[i].math,marks[i].english); 
}; 
function insertline() { 
var count = "select count(*) as Count from marks where id like 'name%'".ForDOM().query(); 
var index = count[0].Count + 1; 
addto(index,"","","","",""); 
}; 
function dellastline() { 
var count = "select count(*) as Count from marks where id like 'name%'".ForDOM().query(); 
var index = count[0].Count; 
("delete from marks where id like '%["+ index +"]'").ForDOM().execute(); 
}; 
"create table savedmarks".execute(); 
function savemarks() { 
var names = ("select value from marks where id like 'name%'").ForDOM().query(); 
var sexs = ("select value from marks where id like 'sex%'").ForDOM().query(); 
var chineses = ("select value from marks where id like 'chinese%'").ForDOM().query(); 
var maths = ("select value from marks where id like 'math%'").ForDOM().query(); 
var englishs = ("select value from marks where id like 'english%'").ForDOM().query(); 
"delete from savedmarks".execute(); 
for(var i=0;i<names.length;i++) { 
("insert into savedmarks (name,sex,chinese,math,english) values ('"+ names[i].value +"','" + sexs[i].value + "'," + chineses[i].value + "," + maths[i].value + "," + englishs[i].value + ")").execute(); 
}; 
//alert(savedmarks); 
}; 
function orderby(field,asc) { 
savemarks(); 
var marks = ("select * from savedmarks order by " + field + " " + asc).query(); 
"delete from marks".ForDOM().execute(); 
for(var i=0; i<marks.length;i++) { 
addto(i+2,marks[i].name,marks[i].sex,marks[i].chinese,marks[i].math,marks[i].english); 
}; 
}; 
function order() { 
var byfield = document.getElementById("byfield").value; 
var ascdesc = document.getElementById("ascdesc").value; 
orderby(byfield,ascdesc); 
}; 
</script> 
</body> 
</html>

主要用到四个JS库,其中YESBRAIN.js是基库,JSQL.js是接口。JSQL-Memory.js和JSQL-DOM分别是JSQL对 javascript Objects Array 和 Html DOM 的 SQL 实现。

jsql javascript

Javascript 相关文章推荐
在javascript将NodeList作为Array数组处理的方法
Jul 09 Javascript
js控制web打印(局部打印)方法整理
May 29 Javascript
关于js里的this关键字的理解
Aug 17 Javascript
js实现带有介绍的Select列表菜单实例
Aug 18 Javascript
js严格模式总结(分享)
Aug 22 Javascript
JavaScript字符串对象
Jan 14 Javascript
jQuery插件zTree实现删除树子节点的方法示例
Mar 08 Javascript
JS按条件 serialize() 对应标签的使用方法
Jul 24 Javascript
基于React+Redux的SSR实现方法
Jul 03 Javascript
Vue配合iView实现省市二级联动的示例代码
Jul 27 Javascript
vue.js实现的幻灯片功能示例
Jan 18 Javascript
Vue中使用wangeditor富文本编辑的问题
Feb 07 Vue.js
JSQL SQLProxy 的 php 版本代码
May 05 #Javascript
JSQL  一个 web DB 的封装
May 05 #Javascript
Javascript JSQL,SQL无处不在,
May 05 #Javascript
Javascript 去除数组的重复元素
May 04 #Javascript
JavaScript中SQL语句的应用实现
May 04 #Javascript
javascript 文章截取部分无损html显示实现代码
May 04 #Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
May 04 #Javascript
You might like
php页面缓存ob系列函数介绍
2012/10/18 PHP
Javascript base64编码实现代码
2011/12/02 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
利用node实现一个批量重命名文件的函数
2017/12/21 Javascript
three.js 入门案例详解
2018/01/23 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
python time模块用法实例详解
2014/09/11 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
简单了解Django模板的使用
2017/12/20 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
估算杭州有多少软件工程师
2015/08/11 面试题
置业顾问岗位职责
2014/03/02 职场文书
中学生家长评语大全
2014/04/16 职场文书
软件项目实施计划书
2014/05/02 职场文书
个人工作表现评价材料
2014/09/21 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
2015年教师新年寄语
2014/12/08 职场文书
罗马假日观后感
2015/06/08 职场文书
2016入党心得体会范文
2016/01/06 职场文书
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL
JavaScript 原型与原型链详情
2021/11/02 Javascript