最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

php - ajax jquery with codeigniter. url doesnt access controller - Stack Overflow

programmeradmin1浏览0评论

I am new to codeigniter and cannot get my ajax to work.
I am trying to make links load content into the main document on click.
I looked for instructions but could not figure it out. All works except the ajax returns alert('ERROR') message. nothing is loadded into <div id='load_here'></div>
Maybe I am missing something in config.php? Do i have to load some library for this to work? Any ideas would be helpfull //main document link

<span id='reg_link_rules'>Link</span>  
<div id='load_here'></div>

// controller

class Register extends CI_Controller {
   public function hello()
   {
      echo 'hello';
   }
}

// jQuery

$(document).ready(function() {
    $('#reg_link_rules').click(function(eve){

    $.ajax({
      type: "GET", 
      url: "register/hello", 

      complete: function(data){
        $('#load_here').html(data);
    },
    error: function(){alert('error');}
    });
  });
});

I think the problem is that the ajax url does not access the controller. Z:/home/codeigniter/www/register/test this is where i think it takes me

problem solved, the url needed to be http://codeigniter/index.php/register/hello

I am new to codeigniter and cannot get my ajax to work.
I am trying to make links load content into the main document on click.
I looked for instructions but could not figure it out. All works except the ajax returns alert('ERROR') message. nothing is loadded into <div id='load_here'></div>
Maybe I am missing something in config.php? Do i have to load some library for this to work? Any ideas would be helpfull //main document link

<span id='reg_link_rules'>Link</span>  
<div id='load_here'></div>

// controller

class Register extends CI_Controller {
   public function hello()
   {
      echo 'hello';
   }
}

// jQuery

$(document).ready(function() {
    $('#reg_link_rules').click(function(eve){

    $.ajax({
      type: "GET", 
      url: "register/hello", 

      complete: function(data){
        $('#load_here').html(data);
    },
    error: function(){alert('error');}
    });
  });
});

I think the problem is that the ajax url does not access the controller. Z:/home/codeigniter/www/register/test this is where i think it takes me

problem solved, the url needed to be http://codeigniter/index.php/register/hello

Share Improve this question edited May 1, 2012 at 15:32 Semur Nabiev asked May 1, 2012 at 13:24 Semur NabievSemur Nabiev 8005 gold badges15 silver badges27 bronze badges
Add a comment  | 

6 Answers 6

Reset to default 6

Try with url: "/register/hello".

Might do the trick.

Usually I do a

<script type="text/javascript">
    base_url = '<?=base_url()?>';
</script>

At the beginning of my page and simply

base_url+"register/hello"

instead

That makes my ajax more reliable, even when / is incorrect.

complete: function(data){
        $('#load_here').html(data);
    },

should be

Just referencing another SO question ... Use success() or complete() in AJAX call

success: function(data){
        $('#load_here').html(data);
    },

AND

$.ajax({
  type: "GET", 

Should be

unless you want your form vars to be submitted along in the URL.

$.ajax({
  type: "POST", 

Hello You should add the base url to the URL Ajax.

 $.ajax({
  type: "GET", 
  url: <?php echo base_url();?>"register/hello", 

  complete: function(data){
    $('#load_here').html(data);
},

Remember enable the helper URL in the Controller!

Cheers

you need to pass the bas_url to ajax file

<script type="text/javascript">

$(document).ready(function(e) {
    var baseurl = <?php echo base_url();?>

    $('#reg_link_rules').click(function(){

        $.ajax({
            url : baseurl+'index.php/register/hello',
            data : '',
            type: "POST",
           success : function(){


            }
        })
        return false;
    })

});

</script>

Sometimes you have do add index.php to the string. Like so:

 $.ajax({
  type: "GET", 
  url: <?php echo base_url();?>"index.php/register/hello", 

  complete: function(data){
    $('#load_here').html(data);
},

But it's all about your config file however. It was the mistake in my case. Hope it helps.

You need to ensure two matter

please put your ajax part as url: ?php echo base_url();?>"register/hello", and type: "GET", and also need to check wheter it is routed the url on config/routes.php.

发布评论

评论列表(0)

  1. 暂无评论