I'm just starting out in Angular and I'm trying to update my JSON file with a PHP script. The script updates it with the right keys but null values. I'd really appreciate some help.
Here's my code:
<?php
$object_data = array(
'capital' => $_POST['in1'],
'country' => $_POST['in2'],
'continent' => $_POST['in3'],
'image' => $_POST['in4']
);
$capitals = file_get_contents('capitals.json');
$capital_data = json_decode($capitals);
array_push($capital_data,$object_data);
$jsondata = json_encode($capital_data,JSON_PRETTY_PRINT);
file_put_contents('capitals.json',$jsondata);
?>
And here's my JSON file:
[
{
"capital": "Ottawa",
"country": "Canada",
"continent": "North America",
"image": "https:\/\/upload.wikimedia.org\/wikipedia\/commons\/2\/22\/Parliament-Ottawa.jpg"
},
{
"capital": "Oslo",
"country": "Norway",
"continent": "Europe",
"image": "https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/b\/bd\/Downtown_Oslo_Norway_skyline.png\/800px-Downtown_Oslo_Norway_skyline.png"
},
{
"capital": "Auckland",
"country": "New Zealand",
"continent": "Oceania",
"image": "https:\/\/upload.wikimedia.org\/wikipedia\/commons\/6\/6e\/Auckland_City_from_Mt_Victoria%2C_Devonport_-_Flickr_-_111_Emergency_%281%29.jpg"
}
]
Lastly, here's my post request in Angular:
$http.post('capitalData.php',
{"capital":input1.val(),"country":input2.val(),
"continent":input3.val(),"image":input4.val()}).success(function(){
alert("Added!");
});
Edit: Updated the post request to specify which data I'm sending but it still returns nulls.