Tuto Créer son portfolio + formulaires

Par Olmek, il y a 11 ans


Bonsoir,

J'ai suivis le tuto de GA "Créer son portfolio" mais j'ai un problème au niveau de la 3ème partie.
Normalement quand on clique sur editer les champs déjà remplis sont complétés automatiquement. Ben pas chez moi ^^
Je me suis dit que cela venait du fichier form.php mais sans résultat.

Voici ce que j'ai dans le fichier form.php

<?php function input($id){ $value = isset($_POST[$id]) ? $_POST[$id] : ' '; return "<input type='text' class='form-control' id='$id' name='$id' value='$value'>"; }

Et voici le fichier destiné à l'édition

<?php include '../lib/includes.php'; if (isset($_POST['title']) && isset($_POST['auth']) && isset($_POST['content']) && isset($_POST['badge'])){ checkCsrf(); $title = $bdd->quote($_POST['title']); $auth = $bdd->quote($_POST['auth']); $badge = $bdd->quote($_POST['badge']); $content = $bdd->quote($_POST['content']); if (isset($_GET['id'])) { $id = $bdd->quote($_GET['id']); $bdd->query("UPDATE news SET title=$title, auth=$auth, badge=$badge, content=$content WHERE id=$id "); }else { $bdd->query("INSERT INTO news SET title=$title, auth=$auth, badge=$badge, content=$content "); } setFlash('La fiche a bien été ajouté'); header('Location: workshop_gestion_news.php'); die(); } if (isset($_GET['id'])) { $id = $bdd->quote($_GET['id']); $select = $bdd->query("SELECT * FROM news WHERE id=$id"); if ($select->rowCount() == 0) { setFlash('Aucun article avec cet ID', 'danger'); header('Location: workshop_gestion_news.php'); die(); } $_POST= $select->fetchAll(); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link href="<?php echo WEBROOT; ?>css/bootstrap/bootstrap.css" rel="stylesheet"> <link href="<?php echo WEBROOT; ?>css/style.css" rel="stylesheet"> <title>Administration</title> </head> <body> <div class="row"> <div class="container"> <h1>Editer une article</h1> <form action="#" method="post"> <div class="form-group"> <label for="title">Titre de l'article</label> <?php echo input('title'); ?> </div> <div class="form-group"> <label for="auth">Auteur</label> <?php echo input('auth'); ?> </div> <div class="form-group"> <label for="badge">Badge</label> <?php echo input('badge'); ?> </div> <div class="form-group"> <label for="content">Texte</label> <?php echo input('content'); ?> </div> <?php echo csrfInput(); ?> <button type="submit" class="btn btn-success">Enregistrer</button> </form> </div> </div> </body> </html>

Merci par avance :)

7 réponses

Olmek, il y a 11 ans

Petit up :)

Olmek, il y a 11 ans

Merci pour ta réponse :)

Dans le tuto il y a une structure ternaire pourtant :/ je vais essayer le code que tu m'as passé. Merci

Olmek, il y a 11 ans

Ta proposition n'a pas marché :/ merci quand même !

Personne d'autre n'a eu ce problème ?

Alexandre #lbac, il y a 11 ans

remplaces $_POST = $select->fetchAll(); par $_POST = $select->fetch();

Tu ne récupères qu'une seule entrée de la table ;)

kewai, il y a 11 ans

Il est ou le but d'aller enregistré ses données dans la superglobale $_POST ?
Ca me semble être une belle connerie de faire ça :/

Olmek, il y a 11 ans

SquallX: Merci super ça marche !

Kewai: je sais pas, va dire ça à GA ;)

Olmek, il y a 11 ans

Je peux faire comment sinon ? :/