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) :
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
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>
Si vous avez une petite idée .. j'ai un peu honte de demandé ça j'avoue aha !
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); ?>
EDIT :
Cela fonctionne comme je le souhaite dans le principe mais je n'ai plus d'index sur mes données JSON
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); ?>
Une idée ?!
Partager