Reputation: 1039
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?
Upvotes: 6
Views: 11592
Reputation: 9051
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)
Upvotes: 8