分类目录归档:网站制作

使用jquery的两个总结

1、不要重复载入jquery
今天使用一个jquery的插件formValidator进行表单验证,死活提示$.formValidator 为空或不是对象,我在formValidator.js里打断点,程序也走到断点处了。说明$.formValidator应该是被正常初始化了。后来想,可能是页面里多次载入jquery把前面载入的数据盖了,于是把重复载入的地方都去掉,呵呵,果然正常了。
2、在body里的代码不能用 $(document).ready
$(document).ready只适合在标签里用,如果在body里用,代码根本不会被执行到。

改进jquery评分打星星插件。

晚上搜到一款打星星插件jQuery Ajax Rater Plugin,演示页面:http://www.m3nt0r.de/devel/raterDemo/,插件实现的简单实用,不过却少两个我认为必需要功能,第一:定义传给服务器端的参数,默认情况下,插件只给服务器POST一个用户选了几个星星的参数。如果一个页面上有两个内容要打星星,那么这样的话,服务器只收到一个分数的参数,却没法识别是哪个内容的打分,第二:没有回调函数功能,打分完成后,我们可能想把插件禁用或者重新设置新的分数等。所以我改造了一下,详情见附件,里面index.html是一个演示页面。
jQuery Ajax Rater Plugin

让CI控制器可以继承自定义类

很多操作,比如验证授权等,可能在每个控制器里都需要做,如果重复在不同的控制器里调用验证方法,就显得太过于累赘了。Codeigniter的控制器默认必须继承自Controller,下面的方法可以让你自己定义一个父控制器,然后让所有的控制器都继承这个控制器,这样的话, 一些统一入口的操作,就可以交给这个父控制器了。
第一步:在application目录的library下面建立新的文件MY_Controller.php,并加入下面代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
class MY_Controller extends Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function is_logged_in()
    {
        $user = $this->session->userdata('user_data');
        return isset($user);
    }
}

然后在控制器目录下建立一个控制器来进行测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class X extends MY_Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function do_something()
    {
        if ($this->is_logged_in())
        {
            // User is logged in.  Do something.
        }
    }
}

访问X控制器,发现可以调用到my_controller里的方法。
原理解释:
CI系统默认的控制器父类在system/library目录里,在application/library目录里定义的MY_controller其实就是对系统默认控制器类的扩展。
手册上的解释见:
http://codeigniter.org.cn/user_guide/general/core_classes.html

维护linux服务器常用命令

1、删除整个目录下文件:

rm -rf /opt/lampp

2、目录重命令名

mv old_name newname

3、备份目录

cp -R /old /old_back

4、重启服务器,使用前要确认,重启后机器还能连上网,要不然就没办法远程维护了。还得去机房。。。

reboot

5、启动mysql

service mysqld start

6、 启动apache

/usr/sbin/httpd restart

7、下载文件到指定目录

wget -P /root http://example.com/really-big-file.iso

8、解压文件

tar -zxvf httpd-2.0.48.tar.gz
解压到指定目录
tar -zxvf httpd-2.0.48.tar.gz -C /home/test
将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
$ unzip -n text.zip -d /tmp

9、压缩目录
把/etc文件夹打包后生成一个/tmp/etc.tar.gz的文件。
tar -zcvf /tmp/etc.tar.gz /etc

10、删除目录

rm -rf dirname

11、修改mysql root密码

mysql -u root

mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘newpass’);

12、修改整个目录下所有文件的权限

chmod -R 777 dirName