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 相关文章推荐
贴一个在Mozilla中常用的Javascript代码
Jan 09 Javascript
jQuery学习3:操作元素属性和特性
Feb 07 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
Jul 17 Javascript
IE6下focus与blur错乱的解决方案
Jul 31 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
Jun 30 Javascript
jquery实现多行文字图片滚动效果示例代码
Oct 10 Javascript
jQuery显示和隐藏 常用的状态判断方法
Jan 29 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
Aug 05 Javascript
十大热门的JavaScript框架和库
Mar 21 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
Jul 28 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
Aug 28 Javascript
jQuery冲突问题解决方法
Jan 19 jQuery
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
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
php date与gmdate的获取日期的区别
2010/02/08 PHP
PHP应用JSON技巧讲解
2013/02/03 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
Linux中为php配置伪静态
2014/12/17 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
Django的分页器实例(paginator)
2017/12/01 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
python 格式化输出百分号的方法
2019/01/20 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
英国网上电器商店:Electricshop
2020/03/15 全球购物
工商管理专业应届生求职信
2013/11/04 职场文书
学生处主任岗位职责
2013/12/01 职场文书
茶叶生产计划书
2014/01/10 职场文书
安全横幅标语
2014/06/09 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
博士生专家推荐信
2015/03/25 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android