2009-12-09 96 views
3

我正在编写我的第一个Codeigniter Web应用程序,并且我想使用AJAX为某个模式框提供一些信息。有人可以通过简单的方式引导我将ajax与CI结合起来吗?Codeigniter中的AJAX

具体来说,用户将点击一个链接,而不是被带到另一个页面,该页面将被加载到一个模式框。

谢谢!

+0

你想学习ajax或只是知道如何在CI中使用它?另外,Kohana的岩石比CI要多;) – yoda 2009-12-09 06:25:21

+0

在CI中使用ajax。告诉我为什么Kohana更好。 – 2009-12-09 06:34:56

+0

Kohana是一群伟大的编程人员,他们在CI中找到了一个很好的基础,但改变了很多东西,以便获得更好的框架。实际上,他们从Cake,Symfony等其他fw中获得了很多想法,并将自己的最佳做法融合在一起。它是社区驱动的,不是像CI这样的公司驱动的,它有很多功能,如果你在http://kohanaphp.com – yoda 2009-12-09 06:40:15

回答

4

回答你的问题,因为CI似乎没有尚未实施的JavaScript库一个适当的支持,你可以使用这样的功能,以确保您正在处理的信息来自阿贾克斯:

http://snipplr.com/view/1060/check-for-ajax-request/

注意,这仅与像jQuery JavaScript库或MoonTools

之后的作品,你只需要处理的信息,就好像它是一个正常的页面,用$这个 - 获取数据>输入 - > post('field')或$ this-> input-> get('field')消毒变量。

的例子

(使用jQuery),假设你有要在项目的列表中删除的行中的锚标记:

$(function() { 

    $('a.delete').click(function(e) { 
    // prevents the default behaviour of the anchor 
    e.preventDefault(); 
    // gets the id stored in the anchor as attribute 
    var cid= $(this).attr('cid'); 

    // instantiate and executes the ajax 
    $.ajax({ 
    type: 'POST', 
    url: 'http://www.yoursite.com/ajax.php', 
    data: "action=delete&cid="+cid, 
    async: true, 
    success: function(data){ 
    // alerts the response, or whatever you need 
    alert(data); 
    } 
    }); 
}); 

在此之后,你只需要建立CI代码作为普通页面。请注意,我在ajax请求(基础url,参数数据)中使用了普通的url,并且不知道它是否可以正常使用“url_rewrited”url,但它们可能没有问题,如果您只是使用“ url:“ajax参数来插入完整的url。

+0

我真的很感激一个例子! :) – 2009-12-09 06:51:31

+0

除了http://example.com/somepage.php之外,您通常会在http://example.com/index.php/someclass/somemethod或http://example.com/中放置CI类/方法 – andyk 2009-12-09 12:01:18

+0

我修改了这个以使用我的模态。非常感谢你! – 2009-12-12 00:41:53