Transformation de JSON en PHP puis de PHP en JSON
Bonjour,
J'ai un problème qui je pense va vous faire sourire par sa simplicité mais je "bloque" dessus et comme j'ai le nez dessus je n'arrive pas a voir où est le problème et a prendre du recul sur la petite partie de code que je vais vous transmettre.
Je souhaite récupérer le contenu d'un fichier JSON dans un tableau PHP, y ajouter les variables POST renvoyées par mon formulaire, encoder mon tableau PHP en JSON puis renvoyer tout ça en JSON ...
Voilà mon formulaire (basique) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form method="post" action="controller1.php">
<div class="form-group">
<label>Nom</label>
<input type="text" class="form-control" name='nom' placeholder="Entrez le nom" >
</div>
<div class="form-group">
<label>Preom</label>
<input type="text" class="form-control" name='prenom' placeholder="Entrez le prenom" >
</div>
<button type="submit" class="btn btn-success" >Enregistrer le nouvel acteur <i class="fa fa-thumbs-o-up" ></i></button>
</form>
</body>
</html> |
voilà mon controller :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<?php
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$file='bdd.json';
$contenu = file_get_contents($file);
$contenu = json_decode($contenu,true);
$fic=fopen($file, 'w');
ftruncate($fic, 0);
$array = array($contenu);
$array1 = array('nom_pers' => $nom, 'prenom_pers' => $prenom);
array_push($array, $array1);
print_r($array);
$array=json_encode($array);
fwrite($fic,$array);
?> |
Si vous avez une petite idée .. j'ai un peu honte de demandé ça j'avoue aha !
EDIT :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<?php
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$file = 'bdd.json';
$contenu = file_get_contents($file);
$contenu = json_decode($contenu, true);
$fic = fopen($file, 'w');
ftruncate($fic, 0);
$array = $contenu;
$array1 = array('nom_pers' => $nom, 'prenom_pers' => $prenom);
if(!$array==null){
array_push($array, $array1);
}else{
$array['0']=$array1;
}
$array = json_encode($array);
fwrite($fic, $array);
?> |
Cela fonctionne comme je le souhaite dans le principe mais je n'ai plus d'index sur mes données JSON
Une idée ?!