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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?!