2013-09-16 3 views
21

Как вернуть ответ от контроллера обратно в JQuery Javascript?Код Igniter - Как вернуть ответ Json от контроллера

Javascript

$('.signinform').submit(function() { 
    $(this).ajaxSubmit({ 
     type : "POST", 
     url: 'index.php/user/signin', // target element(s) to be updated with server response 
     cache : false, 
     success : onSuccessRegistered, 
     error: onFailRegistered 
    });   
    return false; 
}); 

данных возвращается нулевой (пустой)!

function onSuccessRegistered(data){ 
    alert(data); 
}; 

Controller -

public function signin() { 
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);  
    echo json_encode($arr); 
} 
+0

проверить вы называете частности метод. Достигнут вызов метода signin – Sundar

+0

Да, вызов достиг знака –

+0

success: function (response) {console.log (response)} измените эту строку и добавьте заголовок // добавьте заголовок здесь header ('Content-Type: application/json') – Sundar

ответ

31
//do the edit in your javascript 

$('.signinform').submit(function() { 
    $(this).ajaxSubmit({ 
     type : "POST", 
     //set the data type 
     dataType:'json', 
     url: 'index.php/user/signin', // target element(s) to be updated with server response 
     cache : false, 
     //check this in Firefox browser 
     success : function(response){ console.log(response); alert(response)}, 
     error: onFailRegistered 
    });   
    return false; 
}); 


//controller function 

public function signin() { 
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);  

    //add the header here 
    header('Content-Type: application/json'); 
    echo json_encode($arr); 
} 
+0

Возврат (пустая строка) –

+0

http: // /index.php/user/signin проверить этот URL-адрес в браузере – Sundar

+0

Показано: {"a": 1, "b": 2, "c": 3, "d ": 4," e ": 5} –

0

Это не ваш ответ, и это альтернативный способ обработки формы представления

$('.signinform').click(function(e) { 
     e.preventDefault(); 
     $.ajax({ 
     type: "POST", 
     url: 'index.php/user/signin', // target element(s) to be updated with server response 
     dataType:'json', 
     success : function(response){ console.log(response); alert(response)} 
    }); 
}); 
53
return $this->output 
      ->set_content_type('application/json') 
      ->set_status_header(500) 
      ->set_output(json_encode(array(
        'text' => 'Error 500', 
        'type' => 'danger' 
      ))); 
Смежные вопросы