Ravi Rajindu Ravi Rajindu - 2 months ago 8
PHP Question

how to pass data from controller to jquery (Ajax) in codeigniter

controller code

$rates['poor'] = 10;
$rates['fair'] = 20;

$this->load->view('search_result2', $rates);

//I have tried this in many ways but at least It executes the "success" in ajax file only with above way. other ways I have tried ex :-
//$this->output->set_output(json_encode($rates));
//echo json_encode($rates);


i need to pass this rates array to ajax

js code

$.ajax({
type:'POST',
url:'some url',
data:{'adID':adID},
//dataType:'JSON', // when I uncommented this it displays nothing. when commented it displays "undefined" on the label below i have created
success:function(rates){

$('#rate_val').html('<label>'+rates.poor+'</label>');

//I have tried this in many ways ex :-
// $('#rate_val').html('<label>'+rates['poor']+'</label>');
// $('#rate_val').html('<label>'+rates[0]+'</label>');

}
});


this displays "undefined" on label. I can't get the data I have passed from controller. please help ?

Answer
  1. Uncomment dataType:'JSON'
  2. Set output as json with echo or set_output from controller
  3. Get item with rates.poor or rates['poor'] from ajax

Controller

public function post_url()
{
    $rates = array();
    $rates['poor'] = 10; 
    $rates['fair'] = 20;

    $this->output->set_output(json_encode($rates));
}

Ajax

<script>
$.ajax({
    type:'POST',
    url:'POST_URL',
    data:{'adID':adID},
    dataType:'JSON',
    success:function(rates){ 
        $('#rate_val').html('<label>'+rates.poor+'</label>');
    }
});
</script>
Comments