Sidra Sidra - 2 months ago 15
JSON Question

Passing JSON from controller to view in codeigniter

I made an API call and received the response in JSON format.

JSON:



{
"Specialities": [
{
"SpecialityID": 1,
"SpecialityName": "Eye Doctor"
},
{
"SpecialityID": 2,
"SpecialityName": "Chiropractor"
},
{
"SpecialityID": 3,
"SpecialityName": "Primary Care Doctor"
}
]
}





Controller File:



public function index(){
$data= json_decode(file_get_contents('some_url'));
$this->load->view('my_view',$data);
}





Above code doesn't work because in view I can't access the nested object properties. However I am able to echo the JSON properties in controller file just like this:

Controller File:


public function index(){

$data=json_decode(file_get_contents('some_url'));
foreach ($data as $key=>$prop_name){
for($i=0;$i < count($prop_name);$i++){
echo $prop_name[$i]->SpecialityID;
echo $prop_name[$i]->SpecialityName;
}
}
}





My question is how do I pass this JSON to view and how can I access those properties in view file?

Answer

As per Docs

Data is passed from the controller to the view by way of an array or an object in the second parameter of the view loading method.

Here is an example using an array:

So you need to change your code in controller

Controller.php

$data = array();
$data['myJson'] = json_decode(file_get_contents('some_url'));
$this->load->view('my_view',$data);

my_view.php

<html>
....
<?php 
//Access them like so
print_r($myJson);
// Rest of your code here to play with json 
?>
....
</html>
Comments