Archive for 四月 2012

jQuery 可编辑的表格实现

可编辑的表格,指的是,在单元格上单击后,该格数据可以编辑,回车后,通过ajax保存,实现无刷新编辑。
原理:在点击单元格后,把该格内容替换成一个input标签,当用户编辑完按回车后,再通过ajax把编辑后的内容发送给服务器,把单元格内容换成编辑后的内容。
html代码: Continue reading “jQuery 可编辑的表格实现” »

jQuery post使用变量作参数名

jQuery Post使用方法:


$.post("test.php", { name: "John", time: "2pm" } );

如上,参数名不是字符串,所以不可以直接在这里用使用变量,因为jQuery会把变量名当成参数名.但是我们发现,其实后面的参数就是一个key/value的数组。所以,解决方法很简单:


var arg = {};
var arg1="name";
var arg2="time";
var value1="John";
var value2="2pm";
arg[arg1]=value1;
arg[arg2]=value2;
$.post("test.php", arg);

Mysql临时表使用实例

前文讲到无法解决限定日期内日程循环输出的问题,这里通过结合临时表,解决了。
因为我只要输出最近一周内的日程,所以,不用考虑周循环,和月循环,因为一个周循环的日程,不可能在一周内重复两次,月循环更不可能。这里只需要考虑日循环。
原理:临时生成一个表存储最近七天的日期,与route_data表一起查询,where条件为 ,临时表里的日期与日程下一次执行日期相同,如果是日循环的日程,直接与临时表里的日期自己对比,因为日循环的话,不用判断,每天都会执行。
完整的SQL: Continue reading “Mysql临时表使用实例” »

Mysql 临时表的使用

临时表,用于存储查询到的数据,进行进一步筛选.
用法:
create temporary table 临时表名 select语句;
select * form 临时表名;
因为临时表只对当前连接有效,所以,必须在创建临时表后,马上执行进一步的筛选,刷新页面或另一个页面就是另一个连接了,找不到生成的临时表.

Mysql 日期函数以及IF条件语句的使用

现在在做的项目需要有个日程管理,日程分四种周期,单次,每天,每周,每月,表结构如下图:

涉及到的字段就两个,一个是period,存储周期类型,值为0-4,0单次,1每天,2每周,3每月.
另一个是data,存储周期对应的数据,如果是单次,这里就是具体日期,如果是每天,这里为空,如果是每周,值为1-7,如果是每月,值为1-31.
我现在的问题是,要把最近几天的行程从数据库读出来,然后按日期排序,因为是循环的日程,所以除了单次日程外,不可能在数据库中存储具体日期,只能根据周期类型以及周期的数据,再根据今天的日期来计算该行程下次执行的时间。因为要根据日期排序,所以除非把数据库所有记录都读出来,否则不可能用PHP来排序,但是把所有记录读出来,明显不现实。
下面就是用Mysql自带的函数计算每个行程的下一次执行日期,返回再排序. Continue reading “Mysql 日期函数以及IF条件语句的使用” »

jQuery 设置disabled属性

设置disable属性与其他属性稍有不同:


$("#workend").attr("disabled",true);
$("#workend").attr("disabled",false);

jQuery修改UEditor内容

UEditor初始化内容是通过Javascript设置的,如:


<script type="text/plain" id="myEditor"> 初始化内容</script>

但是,如果直接用jQuery的html方法,修改内容后,会发现,编辑器不见了,只显示一段文本。
其实UEditor带了一个setContent方法,可以直接设置内容。


 var editor = new baidu.editor.ui.Editor({
        textarea:'introduction'
    });
    editor.render("myEditor");
	editor.setContent("内容");

同样可以在用jQuery取到内容后用setContent方法设置

jQuery解析xml,QName的处理

后面会写个范例详细讲解析xml,这里只介绍QName的处理方法。
什么是QName?QName指的是元素名前带命名空间的元素名,如:


<db:attribute name="isbn10">7543639130</db:attribute>

db:attribute就是QName.
如果直接用$(xml).find("db:attribute"),是找不到元素的,这里需要对冒号转义一下,写成$(xml).find("db\\:attribute")
还有一点需要注意,上面的代码在WebKit浏览器不能运行(Chrome等),在这类浏览器中需要用$(xml).find("attribute"),所以,需要先判断一下.


/**
 * 判断是否WebKit浏览器
 */
function isWebKit()
{
	var ua=navigator.userAgent.toLowerCase();
	if(ua.indexOf("webkit")>0)
	{
		return true;
	}
	return false;
}

var attribute;
if(isWebKit())
{
	attribute=$(xml).find("attribute");
}else{
	attribute= $(xml).find("db\\:attribute");
}