Bonjour,
Voilà mon problème, je suis entrain de réaliser un site ou il y aura un backoffice. Dans ce backoffice l'utilisateur pourra modifier le contenu de certaine page, via un formulaire qui ne comportera qu'un champ, celui pour modifier le contenu.
1- Je n'arrive pas à récupérer le contenu, et faire qu'il s'affiche dans mon textarea.
2- Je ne sais pas comment enregistrer les modifications apporté au texte, si j'arrive déjà à le récupérer.

J'espère être clair,

Merci

5 réponses


fabricelepro
Réponse acceptée

macinsteph, dans ton code tu ne teste pas si le bouton "Valider" a été envoyé, c'est de la que peux venir l'erreur

if(isset($_POST"modifier"])
        code d'edition ....

Pour afficher le contenu dans ton textarea :

<form action="update.php" method="post>
<input type="hidden" name="page" value="presentation" >
<textarea name="contenu" value="<?php echo $mon_contenu_recuperer_depuis_bdd;?> "> </textarea>

Et pour enregistrer :

<?php
if(!empty($_POST'contenu']))
{
$contenu = $_POST'contenu'];
$page = $_POST'presentation'];
$sql = "UPDATE maTable SET content = $content WHERE page = $page";
}

Voilà, à toi de compléter avec les vérifications etc

merci pour ta réponse mais je n'y arrive pas. j'ai réussi à récupérer le texte que j'avais dans ma base de donnée.
Voici le code que j'ai utilisé :

<?php 
include('inc/header.php'); 
if (!empty($_POST)) {

    if (!empty($_POST'contenu'])) {

        extract($_POST);
        $nom = mysql_escape_string($nom);
        $contenu = mysql_escape_string($contenu);
        $id = $_GET'page'];
        $sql = "UPDATE pages SET contenu='$contenu' WHERE id='$id' ";
        mysql_query($sql);

        $success ='La page a bien été modifié.'
    }else{

        $error = "Erreur. Il faut remplir le champ.";
    }

}
?>
    <div id="bodyPage" style="display: block;">

            <div id="contenu-editer">

                    <h2>Modifier le contenu de la page</h2>
                        <?php if(!empty($_GET'page'])){
                        $id = $_GET'page'];
                        $req = mysql_query("SELECT * FROM pages WHERE id = $id");
                            if (mysql_num_rows() > 0) {
                                $data = mysql_fetch_assoc($req);
                            }else{
                                header('Location:accueil.php')
                            }
                        }
                        ?>
                        <?php if(!empty($success)){ echo'<div id="success">'.$success.'</div>';} ?>
                        <?php if(!empty($error)){ echo'<div id="error">'.$error.'</div>';} ?>

                    <form method="POST" action="editer.php?page=<?php echo $data 'id']; ?>">

                        <p>
                            <label for="contenu">Contenu</label></br>
                            <textarea type="text" id="content" name="contenu"><?php echo $data'contenu'];?></textarea>
                        </p>    

                        <p>
                            <input type="submit" class="btn" value="Modifier">
                        </p>
                    </form>
            </div>

    </div>

<?php include('inc/footer.php');?>

cette page est dans le dossier admin, pour la base de donnée il y a 3 champs : id, nom(pour le nom de la page), et contenu(le contenu existant dans mes pages, uniquement du texte).
Ma base de données c'est : dbo, et la table pages.

merci

<textarea type="text" id="content" name="contenu" value="<?php echo $data'contenu'];?>" > </textarea>

Mieux non ?

le problème est que si je fais comme tu me dis de faire il n(y a rien qui s'affiche dans le textarea...
mon problème est de chercher le bon texte le modifier, et que les modif soient effective dans la base de données.