如果在ci中合理的部署ajax这几天一直困扰着我。今天我意外的发现了两个很好的办法。
1。CI+XAJAX (这里我就不多说了,有兴趣的自己去google)
2。用ci官方发布的ajax类。这个类在1.5.1的时候就已经开发了。不知道为什么到今天它也没有出现在CI中。我们必须要到官方去下载它,并手动添加到自定义类中。具体的官方地址是:http://codeigniter.com/wiki/AJAX_for_CodeIgniter/
这里我把它的用法简略翻译了一下。和大家分享一下。(翻译水平有限,见谅)
=================================================
把你的ajax类放在默认的libraries目录下 www-root/system/libraries/ 把你的javascript文件放到根目录下。比如: 如果你用mod_rewrite, 请确认你允许javascript路径能够被通过。你可以通过类似下面的方法配置.htaccess文件 RewriteEngine on
RewriteCond $1 !^(index\.php|images|stylesheets|javascript)
RewriteRule ^(.*)$ /index.php/$1 [L] 然后,通过html文件调用任何被你打算使用的javascript文件,例如: <script src="javascript/prototype.js" type="text/javascript"></script>
<script src="javascript/effects.js" type="text/javascript"></script>
<script src="javascript/dragdrop.js" type="text/javascript"></script>
<script src="javascript/controls.js" type="text/javascript"></script> 最后,按照正常的方法读取CodeIgniter library.你有两种读取方法。直接在你的controller中读取(个人比较倾向这个方法) $this->load->library('ajax'); 或者,你可以在system/application/config/autoload.php中把ajax类设成自动读取 $autoload['libraries'] = array('database', 'session', 'ajax'); 然后你所需要做的就是用ajax helper($this->ajax)来使用.比方以下这个例子 echo $this->ajax->link_to_remote("Login", array('url' =>'/login', 'update'=> 'divblock')); |