2011-09-24 17 views
5

Ho il seguente JSjquery ajax restituisce l'errore, ma è successo

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); 
} 



}); 



} 

e il seguente codice di controllo:

<?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); 



    } 
} 

L'addarticle() javascript opere Ajax e post i VAR di server e nel db, tuttavia, javascript eseguirà la funzione di errore invece della funzione di successo. Il codice di risposta http è 200 e ho pensato che potesse far funzionare la funzione Success. eventuali suggerimenti?

risposta

7

È necessario restituire json dal controller, poiché questo è ciò che si aspetta jQuery. È possibile restituire cioè

{ success : true } 

Oppure si potrebbe impostare HTML come tipo di dati (forse funzionerà senza contenuto, ma potrebbe essere necessario restituire qualcosa)

+1

Ok, ho rimosso il tipo di dati: perché io non effettivamente bisogno tutto da rinviare quindi dopo che ha funzionato normalmente. Pensavo che il tipo di dati fosse per quale tipo di dati: la tua immissione. grazie –

+0

No, l'input è sempre serializzato su querystring in get o stringa in post. Prego. –

Problemi correlati