Les données doivent être transmises automatiquement lorsque le formulaire est affiché. Voici la page « Intégration » du Guide du développeur qui explique ceci:
http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Integration
Etes-vous sûr que la requête est en cours d'exécution avec succès et que le champ contenu est mis à jour? Je demande parce que le code affiché dit que dans save.php, vous utilisez:
$id = $_GET['id'];
Cela semble poser un problème, parce que vous utilisez method = « post » dans votre formulaire, pas method = » obtenir".
Pourriez-vous également publier le code que vous utilisez pour remplacer la zone de texte avec CKEditor. Utilisez-vous la méthode PHP:
<?php
$CKEditor = new CKEditor();
$CKEditor->basePath = '/ckeditor/';
$CKEditor->replace("content");
?>
Ou la méthode JavaScript:
<script language="Javascript">
<!--
CKEDITOR.replace('content');
//-->
</script>
Bien-être, Joe
Suivi de question dans les commentaires
Salut Purmou,
Je n'ai pas remarqué que vous incluiez l'ID dans l'action du formulaire, désolé à ce sujet. Si vous ne voulez l'utiliser comme une variable $ _POST au lieu, vous pouvez l'inclure comme un champ caché comme celui-ci:
<form id="editform" action="save.php?id=<?php echo $_GET['id']; ?>" method="post">
<input type="hidden" id="id" name="id" value="<?php echo $_GET['id']; ?>" />
<textarea id="editor" name="content"><?php echo $page['content']; ?></textarea>
Il y a quelques bonnes documentaion sur le chargement de l'éditeur via PHP dans le dossier _samples du CKEditor installer: http://YourSite.com/ckeditor/_samples/php/
http://YourSite.com/ckeditor/_samples/php/replace.php, a les paramètres de base:
<?php
// Include the CKEditor class.
include_once "ckeditor/ckeditor.php";
// Create a class instance.
$CKEditor = new CKEditor();
// Path to the CKEditor directory.
$CKEditor->basePath = '/ckeditor/';
// Replace a textarea element with an id (or name) of "textarea_id".
$CKEditor->replace("textarea_id");
?>
similaires à la méthode JavaScript, vous pouvez ajouter des options de configuration avant de remplacer la zone de texte. Un exemple de la "avancée.php » file:
$CKEditor->config['width'] = 600;
Pour utiliser la méthode PHP avec votre code spécifique, faites ceci:
if(isset($_GET['id'])) {
$id = $_GET['id'];
$content = mysql_query("SELECT title, content FROM pages WHERE id=".$id);
$search = mysql_num_rows($content);
if($search > 0){
while($page = mysql_fetch_array($content)) { ?>
<h1>Editing <?php echo $page['title']; ?></h1>
<form id="editform" action="save.php?id=<?php echo $_GET['id']; ?>" method="post">
<textarea id="content" name="content"><?php echo $page['content']; ?></textarea>
</form>
<?php }
include_once "ckeditor/ckeditor.php";
$CKEditor = new CKEditor();
$CKEditor->basePath = '/ckeditor/';
$CKEditor->replace("content");
}
} ?>
J'ai changé l'identifiant textarea de "éditeur" à "contenu" je le ferais. Il est recommandé de ne pas utiliser "editor" pour l'ID ou le nom, car il est utilisé dans le code CKEditor pour faire référence à l'instance CKEditor
Vous pouvez configurer les paramètres dans la page où vous chargez l'éditeur ou dans le fichier config.js ou dans votre o wn fichier de configuration personnalisé.
J'ai passé du temps à essayer d'attraper la valeur du champ de contenu de formulaire après la soumission du formulaire, mais je n'ai pu le voir que lorsque CKEditor avait mis à jour le contenu.
être bien,
Joe
Je sais exactement rien sur le comportement CKEditor en php, mais en javascript vous devez appeler les méthodes de l'éditeur de mettre à jour l'élément underlaying ou getData() d'occurrence de l'éditeur pour obtenir des changements d'utilisateurs, il ne marche pas faire c'est automatique ... dans JS de toute façon – Zee
@Zeela: Est-ce que j'utiliserais 'submit(); jQuery pour déclencher ce code de mise à jour? (Je sais en fait 'updateElement()' mais je trouve maintenant comment l'utiliser dans ma situation.) – Purag