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 :)
remplaces $_POST = $select->fetchAll(); par $_POST = $select->fetch();
Tu ne récupères qu'une seule entrée de la table ;)
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
Ta proposition n'a pas marché :/ merci quand même !
Personne d'autre n'a eu ce problème ?
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 :/