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


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


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


所以我的获取请求看起来像这样:
&#XA;&#XA;<代码> $得到( '创建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;
答案 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!!!";
}
}