Bonjour,
j'aimerais pouvoir modifier un article que j'ai créé en PHP mais ça ne fonctionne pas. j'aimerais comprendre mon erreur, je vous montre le code :
La vue où je modifie l'article (UpdateView.php) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href="index.php?action=edit&id=<?= $post['id'] ?>">Modifier</a>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <h3>Modifiez un billet existant à l'aide des champs ci-dessous :</h3> <form action="index.php?action=listPosts&id=<?= $post['id']?>" method="POST"> <p><label for="title">Titre :</label><input type="text" name="newtitle" value="<?= $post['title']?>"></p> <p><label for="content">Saisissez l'article modifié :</label><textarea name=" newcontent" ><?= $post['content']?></textarea></p> <p><input type="submit"></p> </form>
Modèle :
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 //Récupération du post que l'on veut modifier function getEditPost() { $db = dbConnect(); $req = $db->prepare('SELECT * FROM posts WHERE id = ?'); $req->execute(array($id)); $post = $req->fetch(); return $post; } //Modifier le post function getUpdatePost($id) { $db = dbConnect(); $update = $db->prepare('UPDATE posts SET title = ?, content = ? WHERE id = ?'); $update->execute(array($_POST['newtitle'], $_POST['newcontent'], $id)); return $update; }
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
21
22 function editPost() { $post = getEditPost(); if ($post === false) { print "Impossible d'accéder à la page demandé"; }else { require('View/frontend/UpdateView.php'); } } function updatePost($id) { if(isset($_POST['title']) && isset($_POST['content'])) { if(!empty($_POST['title'])&& !empty($_POST['content'])) { $update = getUpdatePost($id); }else { print "Tout les champs ne sont pas remplis !"; } } else { print "Les champs n'existent pas !"; } }
et enfin le routeur (l'index) :
J'accède bien à UpdateView.php pour pouvoir modifier l'article mais quand j'envoie il n'y a aucune modification. Merci pour votre aide
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
22
23
24
25
26
27
28
29
30
31
32
33 //Afficher les posts if (isset($_GET['action'])) { if ($_GET['action'] == 'listPosts') { listPosts(); if(isset($_POST['title']) && isset($_POST['content'])) { if(!empty($_POST['title']) && !empty($_POST['content'])) { updatePost($_GET['id']); }else { print "Les champs sont pas remplis !"; } } //Afficher le post et ses commentaires } elseif ($_GET['action'] == 'post') { if (isset($_GET['id']) && $_GET['id'] > 0) { post(); } else { echo 'Erreur : aucun identifiant de billet envoyé'; } // Affiche la vue UpdateView.php } elseif ($_GET['action'] == 'edit') { if (isset($_GET['id']) && $_GET['id'] > 0) { editPost(); } }else { print "Les champs title et content n'existent pas !"; } } else { listPosts(); }
Partager