如何从jquery调用控制器?

时间:2016-03-16 22:21:17

标签: javascript php jquery codeigniter

我正试图从我的js脚本(使用jquery)调用一个控制器(我正在使用codeigniter)并且它比我预期的要困难。





controller函数用于从数据库中删除一些项目。要做到这一点,我只需使用jquery的帖子或get(我试过两个)调用该函数。





由于我使用的是codeigniter,我认为最简单的方法是通过URL传递参数然后在控制器中获取它们($ this-> uri-> segment(NUMBER);)





所以我的获取请求看起来像这样:




 <代码> $得到( '创建my_function /' + ITEM_ID);&#XA;  
&#XA;&# xA;

my_function在我调用它的同一个控制器中,所以URL没有问题(我澄清一下,因为起初我写了整个/index.php/my_controller/my_function并抛出错误)

&#xA;&#xA;

就像我说的那样,my_function意味着删除一个项目,但它没有这样做,因此我决定检查我的脚本是否在调用my_function函数的开头:

&#xA;&#xA;
  echo'hello'; exit;&#xA;  
&#xA;&#xA ;

但是'hello'永远不会出现,这只意味着没有调用函数。

& #xA;&#xA;

多年前我记得我把这个jquery / codeigniter组合起来了,所以我在这里做错了,我不知道它是什么。

&#xA; &#xA;

提前感谢您的帮助。

&#xA;&#xA;

MODIFIED:&#xA;更多信息:我在用户触发$ .get()方法点击某种类

&#xA;&#xA;
  $('。my_class')。click(function(){&#xA; $。get('my_function' );&#XA;});&#XA;  
&#XA;

1 个答案:

答案 0 :(得分:1)

您应该使用:

var url = "<?php echo base_url('name_of_controller/my_function/'); ?>"+item_id;
$.get(url);

(如果你从.htaccess中删除了&#39; index.php&#39;这就有效)。您可以使用firebug检查所调用的URL,并检查它是否是您想要的URL,但我总是以这种方式使用$ .get()&amp; $ .POST()。

更新

试试这个,这是一个应该有效的简单示例,如果不起作用,请共享.htaccess文件及其输出:

JS:

<script type='text/javascript'>
    $(document).ready(function(){
        var url = "<?php echo base_url('test/hello_function'); ?>";

        $('.class').click(function(e){              
            e.preventDefault();
            $.get(url,function(data){
                alert(data);
            });
        });
    });
</script>

CI:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed: login');   
class Test extends CI_Controller {

    function __construct(){
        parent::__construct();
    }

    function hello_function(){
        echo "HELLO!!!";
    }
}