存档

2008年1月 的存档

JQuery基础

2008年1月31日

弄了半天,有了一点眉目.不敢独享,写出来。高手可以直接无视,和我有同样迷惑的朋友可以稍微看一下

首先说一下返回值的类型的一些东西,大概有两种比较让人迷惑返回值

  1. jQuery──这种是比较常见的返回值,比如eq函数,lt,gt等等。之所以返回了一个jQuery,那么这个返回值可以直接在jQuery中进行操作,比如append等等之类的操作,不可以直接document.write的形式写在网页中(写了之后是这个的类型)
  2. Element。返回这个值的话,那么返回的其实是一个DOM,你可以对这个对象进行属性的操作。比如$(”p”).get(1),那么这个时候返回的是一个DOM对象,就是第二个p元素,你可以进行DOM的操作

另外还有一个比较绕人的地方就是$(”")中表示的意义。有的是asdf,有的是#asdf,有的是.asdf,到底表示什么意思?如果直接是asdf的话,那么这个asdf代表DOM对象的标签,比如”<p>”,如果是#asdf,这个asdf代表DOM元素的id,如果是.asdf,这个asdf是DOM对象的class

jQuery的功能还是很强大的,很大程度上解决了我们对于DOM对象的操作和ajax实现的难度。最为简单的ajax实现代码如下:
data = $("#form1").formSerialize();
$.post("index.php?op=ajax",data,function(msg){
alert(msg);
})

注意,formSerialize()函数需要jquery.form.js插件的支持

msg显示的是提交地址(本例是index.php?op=set)接受$_POST之后的显示,比如可以这样子测试,将index.php写成如下内容
if($_GET['op']==”ajax”){
var_dump($_POST);
}

则index.php最后将POST给dump出来,那么对应上面JS中,msg的值就是dump出来的POST

是不是很简单?上面只是一个演示,你完全可以在我们演示的地方写上自己的逻辑业务,比如写入数据库之类的。这样子就实现了使用ajax提交表单内容。虽然这只是最简单的一个ajax示例,但是已经能出来对于ajax操作jQuery封装的也是非常好的。很方便~

如果写的时候觉得不好写,可以参考附件中的api手册,对应的jQuery版本是1.2.1,不过这些都是大同小异,高版本可以拿来直接使用

下载地址

JQuery学习

JS、Ajax~~~

2008年1月29日

太郁闷了!搞TP弄到后来对于字段验证倒是没有问题,结果在验证结果显示的时候遇到了一些小问题,直接使用$this->error($model->getError());的时候总是出现问题,无奈修改称die($model->getError());虽然可以使用,但是显示结果毕竟不是很友好,准备使用Ajax形式表现~

虽然对JS和Ajax有些了解,写起来很是郁闷~~

一边TP,一边JQuery吧~~

ThinkPHP学习

ThinkPHP的路由功能

2008年1月28日

所谓路由功能,就是利用TP内部的处理机制,将例如index.php/aaa的形式用index.php/bbb来表示。看起来在浏览器里面是在访问index.php/bbb,其实执行的是index.php/aaa的操作~~一定程度上可以起到迷惑的作用,保证了TP的安全(所谓和TP对于URL表示有关)

要使用路由功能,需要以下两步

  1. 在配置文件_config.php中设定”ROUTER_ON”为true
  2. 在config目录下创建_routes.php这个文件

其中_routes.php文件就为路由文件,在这个文件中进行设定

该文件有两种写法,一种是return array{}这种格式,另外一种是定义$_routes为array。两种方法都可以,但是个人偏爱于第一种,看起来比较舒服(其实差不多)

路由有分为常规路由和泛路由两种。常规路由,就为一对一的进行路由转义。比如

return array(

‘test’=>array(’Article’,'add’,’sid,time’参数,’mid=36′额外参数));

则此时所有指向URL/test/sid/time的操作,最终都指向为URL/Article/add/sid/time操作并且还隐含传入了mid=36这个额外的参数~

泛路由实在常规路由基础上的加入了正则表达式的匹配

return array(

‘test@’=>array(

array(‘/^\/(\d+)(\/p\/\d)?$/’,’Blog’,'article’,'id’),

array(’/^\/(\d+)\/(\d+)/’,'Blog’,'archive’,'month/day’))

)

上面一个就是一个泛路由。表示将URL/test111的路径解析到URL/Blog/article/id/111,将URL/test/12/13的路径解析到URL/Blog/archive/month/12/day/13这个路径上面

其实泛路由最终还是回到了正则表达式的写法上面去了。一定程度上和Apache的rewrite比较类似。所不同的是这个过程是由PHP来解析而不是Apache来解析。

个人认为如果有有条件,还是使用Apache的rewrite功能,实在不行,比如虚拟主机限制等条件,才考虑使用框架的路由解析功能~

ThinkPHP学习

随便写写

2008年1月28日

原本应该继续我的ThinkPHP的,可是不知道为什么没有写的心情——算了,先写一篇Blog再继续ThinkPHP之旅吧~

28号了,原本应该发布的war3的1.22补丁愣是还没有影子~反正也习惯了Blizzard的一次次跳票。不过最后我的希望就是,不要1.22补丁最后成为一个地图补丁和一个“修正了一个多人游戏中崩溃的bug”之类的垃圾补丁~UD和ORC现在的日子太难过了,希望这次的补丁可以带来一定的变化。

WordPress 2.4也是毫无悬念的继续跳票~~其实我倒是不在乎WordPress版本问题,只是觉得2.4的后台管理看起来比较漂亮;)

ThinkPHP确实是很好用的一个框架,对于CURD的封装非常的简洁,也比较方便。学习TP的过程中对于MVC的思路也开始逐步建立起来~~Model用于定义数据模型;View不用说了,模板;control自然就是对于数据库的操作~三者分开确实对于开发快速并且简介N多~~不错~就是TP的自己的模板引擎有些诡异!不是很喜欢。个人还是喜欢smarttemplate,不喜欢smarty~可惜TP现在只有smarty模板的插件~无奈啊。

这两天南京的雪下的有些惊人了。原先老爹说要来看我,结果连续两次取消。实在是没有办法,雪这么大,家那边的公路交通基本上全部断了。唉……今天看报纸,写到“24年来最大的暴雪”,想想,就是我出生前那年。马上又是我的本命年,莫非24年会循环一次下暴雪;)

雪啊,快点停吧!下一天还可以,下太多了就不好了!我的嗓子一直都没有好,说话都疼。天气变化更加难受~~囧!!

不说了,继续TP学习中!

乱七八糟 ,

Flex Builder 3beta3的注册码

2008年1月28日

1377-4001-6118-2236-9907-6222

估计这个到beta4或者正式版就不能用了。不过暂时还能使用,先发在这边吧,等有了别的再来更新吧!~~

Flex

TP的一个小bug

2008年1月25日

不知道这个到底是算bug还是TP1.0正式版已经不再支持了,反正昨天用了半天发现没法用,自己修改了一下才跑起来。
主要就是那个top函数的使用(其实看源代码应该是经过转义了,不过形式上是函数,就称其为函数好了)
定义了D方法之后,使用top函数,不论参数是怎么样将获取的结果dump出来都是满足条件的所有记录,而不是top后面第一个参数限制的条数~~~~~我很郁闷~虽然可以使用topN这种方法,但是毕竟N本质上是一个参数,写在函数中觉得怪怪的感觉。看了一下关于Model的定义(Model.class.php),发现这么一句话
elseif(strtolower(substr($method,0,3))==’top’){
// 获取前N条记录
$count = substr($method,3);
array_unshift($args,$count);
从240行开始。
就是因为这句话没有经过判断,所以一旦函数形式我写成top这种形式,那么$count的值就为空!所以获取的记录就没有条数限制,就是全部的记录~~~
将其修改成
elseif(strtolower(substr($method,0,3))==’top’){
// 获取前N条记录
if(strlen($method)>3){
$count = substr($method,3);
array_unshift($args,$count);
}
也就是对于top进行一个判断,如果top后面还有内容,则其后面的内容作为$count,并且加载$args的头部进行参数传递,否则$args的值不变~
经过上面的修改,调用$Article->top(5,”,’*',’id ASC’)就可以正确调用前5条记录了。
真的不是什么大的问题,而且topN的方法也是比较方便。之所以会使用top方法,可能是个人习惯问题,毕竟N还是一个需要调用的参数,还是放在top后面的括号中看起来比较舒服。
个人观点

ThinkPHP学习

对于自己第一个项目的反省

2008年1月24日

其实原本这些东西应该是明年才来思考的东西,但是由于今天YoYo帮我把NetMeeting的一些东西做好了,所以感觉轻松了很多,所以还是把这篇东西给写了;)

自己现在重新看那些代码,真的觉得,这个实在是给我写的先当的扯淡——说的难听一点,就是彻头彻尾的失败作品。 阅读全文…

PHP学习