Bonjour,
Je me permets de faire appel à vous car je rencontre un soucis d'UPDATE dans le cadre de POO MVC avec lequel je m'exerce.
Je n'arrive pas a faire fonctionner ce bout de code, et je ne rentre même pas dans mes conditions, le résultat reste toujours la même (redirection dans le 'else')
Voici mes bouts de code qui parleront mieux que moi :
Routeur :
Contrôleur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 switch ($action) { case 'pageModifierChapitre': $this->ctrlPageModifierChapitre = new ControleurEspaceAdmin(); $this->ctrlPageModifierChapitre->pageModifierChapitre(); break; case 'modifierChapitre': $this->ctrlModifierChapitre = new ControleurEspaceAdmin(); $this->ctrlModifierChapitre->modifierChapitre(); break;
Lorsque je tente un essai, je rentre tout le temps dans le cas 'rien passé'
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 public function pageModifierChapitre($msgErreurModifChapitre = '', $msgValideModifChapitre = '') { if (!isset($_SESSION['isAdmin'])) { header("Location:index.php?"); } if (isset($_REQUEST['idPost'])) { $idPost = $_REQUEST['idPost']; $titrePost = $_REQUEST['titrePost']; } $post = $this->postManager->getPost($idPost); $vue = new Vue("PageModifierChapitre", "Modification : " . $titrePost); $vue->genererPageEspaceAdmin(array( 'msgErreurModifChapitre' => $msgErreurModifChapitre, 'msgValideModifRoman' => $msgValideModifChapitre, 'post' => $post )); } public function modifierChapitre() { $msgErreurModifChapitre = ''; $msgValideModifChapitre = ''; if (isset($_POST['modifierChapitre']) && isset($_POST['auteurPost']) && isset($_POST['titrePost']) && isset($_POST['contenuPost']) && ($_GET['idPost'])) { $post = new Post([ 'auteurPost' => $_POST['auteurPost'], 'titrePost' => $_POST['titrePost'], 'contenuPost' => $_POST['contenuPost'], 'idPost' => $_GET['idPost'] ]); if (!$post->auteurValide()) { echo 'erreur auteur'; $msgErreurModifChapitre = '<p style="color:red">Erreur : Le nom de l\'auteur ne peut être vide</p>'; $this->espaceAdmin($msgErreurModifChapitre, ''); } elseif (!$post->titreValide()) { echo 'erreur titre'; $msgErreurModifChapitre = '<p style="color:red">Erreur : Le titre du chapitre ne peut être vide</p>'; $this->espaceAdmin($msgErreurModifChapitre, ''); } elseif (!$post->contenuValide()) { echo 'erreur contenu'; $msgErreurModifChapitre = '<p style="color:red">Erreur : Le contenu du chapitre ne peut être vide</p>'; $this->espaceAdmin($msgErreurModifChapitre, ''); } else { echo 'modif réussi'; $this->postManager->update($post); $msgValideModifChapitre = '<p style="color:green">Votre chapitre a bien été mis à jour</p>'; $this->espaceAdmin('', $msgValideModifChapitre); } } else { echo 'rien passé'; $this->espaceAdmin(); } }
Modele :
Vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public function update(Post $post) { // Connexion à la BDD // Prépare une requête de type UPDATE // Assignation des valeurs à la requête // Exécution de la requête $bdd = $this->getBdd(); $update = $bdd->prepare('UPDATE posts SET date_post = :date_post, titre_post = :titre_post, contenu_post = :contenu_post WHERE id_post = :id_post'); $update->bindValue(':date_post', $post->datePost()); $update->bindValue(':titre_post', $post->titrePost()); $update->bindValue(':contenu_post', $post->contenuPost()); $update->execute(); }
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 <h2 class="sub-header">Modification "<strong><?= $post->titrePost()?></strong>"</h2> <form method="post" action="index.php?action=modifierChapitre"> <div class="table-responsive"> <div class="form-group"> <label for="usr">Auteur :</label> <input type="text" class="form-control" id="usr" value="<?= $post->auteurPost()?>"> </div> <div class="form-group"> <label for="pwd">Titre du chapitre :</label> <input type="text" class="form-control" id="pwd" value="<?= $post->titrePost()?>"> </div> <div class="form-group"> <label for="comment">Contenu :</label> <textarea rows="" cols=""><?= $post->contenuPost()?></textarea> <!-- <textarea>Next, get a free Tiny Cloud API key!</textarea> --> </div> </div> <a href="index.php?action=modifierChapitre&idPost=<?= $post->id()?>" class="btn btn-warning"> <input type="submit" name="modifierChapitre" value="Modifier"><span class="glyphicon glyphicon-download-alt"></span></a> </form> <?php if (!empty($msgErreurModifChapitre)) { echo $msgErreurModifChapitre; } ?>
Merci d'avance pour tout vos retours
Partager