6

I have the following JS

function change_ajaxarea1(){
navigator.notification.activityStart();
$('#ajaxarea1').load('http://server.net/droiddev/backbone1/index.php/welcome/', function(){

navigator.notification.activityStop();
$('#ajaxarea1').css("height","auto");
//$('#ajaxarea1').css("overflow","hidden");
});

//navigator.notification.activityStart();
}


function postarticle(){

 $.post("http://server.net/droiddev/backbone1/", { headline: "John", article: "2pm" } );

 }


function addarticle(){

var headlinetemp=$('#headline').val();
var articletemp=$('#article').val();
$.ajax({
type:'POST',
dataType:'json',
url: "http://server.net/droiddev/backbone1/index.php/welcome/addarticle/",
data: { 'headline': headlinetemp, 'article': articletemp},
success:function(){
alert('success');
},
error:function(xhr){
alert(xhr.status);
}



});



}

and the following controller code :

  <?php 

class Welcome extends CI_Controller {


    public function index()
    {

    $data['query']=$this->site_model->get_last_ten_articles();
$this->load->view('partial1',$data);

    }

    public function addarticle(){

    $headline=$this->input->post('headline');
    $article=$this->input->post('article');
    $this->site_model->insert_entry($headline,$article);



    }
}

The addarticle() javascript ajax works and posts the vars to the server and into the db, however, javascript will then run the error function instead of the success function. The http response code is 200 which I thought would make it run the Success function. any suggestions?

CI_Guy
  • 1,039
  • 2
  • 22
  • 39

1 Answers1

8

You need to return json from controller, as this is what jQuery expects. You can return i.e.

{ success : true }

Or you could set html as data type (maybe it will work without content but you may need to return something)

Goran Obradovic
  • 8,951
  • 9
  • 50
  • 79
  • 1
    Okay, well I removed the dataType: because i dont actually need anything to be sent back so after that it worked as normal. i thought the datatype was for what type the data: your inputting . thanks – CI_Guy Sep 25 '11 at 00:12
  • No, your inputing is always serialized to querystring in get or string in post. You're welcome. – Goran Obradovic Sep 25 '11 at 00:20