amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009
-
26 mars 2008 à 09:48
psaksik -
8 avril 2011 à 14:49
Bonjour,
je désire utiliser FCK editor pour enregistrer des données dans une BD.
Lorsque j'utilise le bouton submit, il n'y a pas de problème, les données données sont bien enregistrées
Par contre, j'utilise ajax pour enregistrer mes données dans la bd (je gère des DIV, dans lequel j'ai mon formulaire).Et cela ne fonctionne pas.
Je vous donne un bout de code exemple:
<form name="monform" id="monform">
<?
$oFCKeditor = new FCKeditor(contenu') ;
$oFCKeditor->BasePath = 'fckeditor/' ;
$oFCKeditor->Value = $c["contenu"] ;(recupéré dans la base, et OK)
$oFCKeditor->Create() ;
?>
[# enregistrer]
Coté javascript :
function enregistre(f){
contenu=document.getElementById(f).contenu.value;(Pb : contenu est tjrs vide)
...traitement de la valeur ....
}
Je sais que FCKeditor crée un champ que je peut voir dans le code source...donc normalement je devrais pouvoir récupérer la valeur de 'contenu'..
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 26 mars 2008 à 12:52
Juste un truc... Pourquoi mettre une balise pour exécuter un javascript ? Quel est l'intérêt ? Si c'est juste pour avoir un pointeur comme curseur :
enregistrer
Perso, je trouve qu'utiliser un lien pour exécuter un js, c'est vraiment pas adapté...
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 26 mars 2008 à 13:17
Ah ouais, mais si tu demandes de l'aide en donnant un code autre que celui que tu utilises, y'a pas grand monde qui va pouvoir t'aider, hein...
Parce que oui, normalement, ça doit marcher... Si tu nous montres autre chose que ce que tu as vraiment, on ne peut pas vraiment trouver d'où vient le problème...
Neige
Vous n’avez pas trouvé la réponse que vous recherchez ?
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 26 mars 2008 à 13:23
Le code reel :
Dans le div "enr_devis" :
<form name="enr_devis" id="enr_devis">
<? $oFCKeditor = new FCKeditor('devis_entete') ;
$oFCKeditor->BasePath = 'fckeditor/' ;
$oFCKeditor->Value = $c["devis_entete"] ;
$oFCKeditor->Create() ;?>
');">
La fonction "gestion_devis" :
function gestion_devis(action,n){
a = document.getElementById('enr_devis');
devis_clt=a.devis_clt.value;
devis_date=a.devis_date.value;
devis_ref=a.devis_ref.value;
if (action=="creer"){
devis_entete='';
devis_pied='';
devis_prix='';
}
else
{
devis_entete=a.devis_entete.value;
devis_pied=a.devis_pied.value;
devis_prix=a.devis_prix.value;
}
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open('POST', 'req_gestion_devis.php', true);
xhr_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr_object.send('devis_clt='+devis_clt+'&devis_date='+devis_date+'&devis_ref='+devis_ref+'&devis_entete='+devis_entete+'&devis_pied='+devis_pied+
'&devis_prix='+devis_prix+'&devis_num='+n+'&action='+action);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
actu_div('liste_historique_client','liste_historique_client.php?clt_num='+devis_clt+'&reload=1');
Riliono Herve
Messages postés18Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention 2 novembre 2008 4 mai 2008 à 18:36
Bonjour à tous je désire faire quelques choses que visiblement vous savez tous déjà faire « Utiliser FCK editor pour insérer des données dans une base de données.
Je sais créer une base de donnée (Phpmyadmin ou Wamps)
Je sais installer FCK Editor
Rien de compliqué dans cela mais, comment faire le lien entre les deux ?
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Quand je suis sur FCK Editor (page ajout.php) et que je saisi un contenu, si je clique sur le bouton submit, la page sampleposteddata.php s’ouvre donc avec mon contenu et les balizes générées par FCK editor, tout cela vous le savez déjà.
Comment dois je faire pour que quand je clique sur submit le résultat s’insère directement dans une base de donnée sans passer par la page sampleposteddata.php ?
Je cherche des réponses, des tutoriaux sur le sujet, tout ce qui pourra m’aider (Pour infos au cas ou… l’anglais et moi, c’est 0 pointé…)
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 5 mai 2008 à 07:26
Tout dépend de la façon dont vous voulez traiter votre post.
- si vous voulez lancer une page php qui va traiter vos données et les enregistrer
- si vous voulez traiter vos données par ajax (ce sui est plus joli puisque la totalité de notre page n'est pas reloadée)
Riliono Herve
Messages postés18Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention 2 novembre 2008 5 mai 2008 à 09:31
Bonjour
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Deux bonnes questions que je ne m’étais pas posée !
Je voudrai simplement que les données de la page sampleposteddata.php s’insèrent directement dans un champ à l’intérieur d’une base de donnée.
Un peu a la façon d’un formulaire réalisé avec Dreamweaver, a savoir, quand on clique sur le bouton submit pour envoyer les données contenu dans le formulaire, celle-ci s’inscrivent dans la base de donnée tandis que l’écran affiche une page de mon choix genre « les données ont été enregistrées … », avec l’avantage de FCK Editor qui est pouvoir ajouter une mise en page.
Un peu à la façon de ce présent forum…
Maintenant, s’il y existe une autre façon de procéder pour arriver à ce résultat je suis ouvert à tout…
Pour ce qui est de l’Ajax, je connais le principe de ce langage mais pour l’instant je n’ai pas encore eu le temps de me pencher dessus aussi je ne suis pas spécialiste.
Voila, donc tout bien réfléchi je pense que l’objet de ma recherche se niche plutôt dans votre première proposition – « si vous voulez lancer une page php qui va traiter vos données et les enregistrer », ceci dit je suis preneur de toutes les explications, méthodes et tutoriaux possibles.
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 5 mai 2008 à 09:56
C'est la solution la plus simple, puisque c'est comparable à une gestion classique de formulaire :
schema type :
fichier : fichier.php
<?
include_once("fckeditor/fckeditor.php") ;
include ("taconnection à ta base.php");
if (isset($_POST("enr")){
$contenu=$_POST("contenu");
$add=mysql_query("INSERT INTO tabase (contenu) VALUES ('$contenu')");
echo "Vos données ont été enregistrées...";
Voila, ça devrait marcher...
En fait le nom que tu donnes à ton champ (textarea) de FCKeditor est à entrer dans la creation de l'objet . Ici, je l'ai appelé contenu.
Dis moi si c'est ok pr toi.
Faites vous plaisir !!
Riliono Herve
Messages postés18Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention 2 novembre 2008 5 mai 2008 à 15:23
Euh bien bon, je dois être un peu ignorant…. voire davantage…
Marche pas, mais c’est de ma faute, je vais donner des détails techniques.
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
La base de donnée, pour l’exemple, je l’appelle « fck_editor », à l’intérieur, une table nommée « contenu » et enfin un champs nommé « textes » dans lequel je souhaite insérer des contenus.
Pour les dossiers, mettons que j’ai deux dossiers et un fichier index.php.
Le fichier index.php sert à afficher le contenu de la base de donnée.
Un des dossiers est nommée « Connections » et contient le fichier (fck_editor.php) de connections à la base de donnée.
L’autre dossier je vais l’appeler « admin » et il contient l’ensemble des dossiers et fichier de fck editor dont les fichier « ajout.php » et « sampleposteddata.php ».
J’ai collé et modifié ton code dans le fichier ajout.php (Je suppose que c’est cela que je devais faire) … mais en vain alors si tu veux bien être un poil plus précis. En tout cas merci pour ta réponse.
Riliono Herve
Messages postés18Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention 2 novembre 2008 5 mai 2008 à 17:09
Eh oui et....
Je suis désolé, peut-être que j'abuse mais ne prends pas peur à l'idée d'être prolixe dans tes explications.
Bon j'en suis toujours au même point, je n'ai toujours pas réussi à insérrer quoi que ce soit dans le champs "textes" de ma base de donnée. Je penses que je dois mal configurer le fichier ajout.php (C'est donc celui la qu'il faut modifier...).
Donc eu égard a mes précéents posts si tu pouvais avoir la délicatesse d'être précis...
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 5 mai 2008 à 17:15
premiere verif : est ce que tu vois le champ fckeditor apparaitre normalement (avec le icones en haut)
deuxieme verif : donnes moi la structure des champs de ta base de donnée (type,...)
troisieme verif : post moi le code de sampleposteddata.php
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 5 mai 2008 à 22:42
C'est pas trés clair ton truc...t'as piqué ça où???
A aucun moment tu n'enregistres les données ds ta base..ou alors j'ai pas tout.Le fichier samplepostdata ne sert qu'a réafficher les données mais ne les enregistre pas dans une base.
Met ton champ texte en Longtext... ça evite les soucis de taille.
La methode qui marche (chez moi)
1 seul fichier (plus simple pour la maintenance..)
<?
include_once("fckeditor/fckeditor.php") ;
include("ton fichier de connection à ta BD.php");
if( isset($_POST["maj"])){
$contenu=$_POST["FCKeditor1"];
$add=mysql_query("INSERT INTO contenu (contenu) VALUES ('$contenu')");
echo "Ok c'est enregistré";
<? }?>
tu gardes ton fichier de connexion à ta base (Connection_php_mysql.htm) que je te conseille de renommer en .php
Reste à savoir si ton serveur gère les magicquotes ou pas pour savoir si tu rajoute ou pas tes caractères d'echappement.
Normalement tu ne devrais pas avoir de pb d'enregistrement.
Tu pourrais convertir les données de $contenu avec htmlspecialchars() ce qui permet d'éliminer les espaces(en rajoutant des caractères spéciaux), mais tout dépend de ce que tu veux faire de tes données ensuite..
Dis moi si ça te va...
En tout cas, ton code est une machine à gaz...
Faites vous plaisir !!
$add=mysql_query("INSERT INTO contenu (contenu) VALUES ('$contenu')");
echo "Ok c'est enregistré";
}
else {?>
<form method="post" target="_self" >
<?
$oFCKeditor = new FCKeditor('FCKeditor1') ;
$oFCKeditor->BasePath = 'fckeditor/' ;
$oFCKeditor->Value = '' ;
$oFCKeditor->Create() ;
?>
</form>
<? }?>
</html>
J’ai bien l’interface de fck Editor qui apparaît, j’ai bien l’echo « Ok, c’est enregistré » quand je clique sur « submit » mais toujours rien d’enregistré dans la base de donnée… ?
Rappel de la structure :
Structure de la base
:
Nom de la base : pixelatefck,
Nom de la table : contenu,
Structure de la table contenu : 2 champs
Le 1er champs se nomme « id » de type int(10), attribut « unsigned », extra « auto_increment », clef primaire.
Le second champ se nomme « textes », et il est de type « text »
(C'est dans ce champ que je souhaite pouvoir insérer des données.)
Sachant que c’est dans le second champ « textes » que je veux pouvoir insérer des données, je viens d’essayer de reformuler de plusieurs façons possibles la ligne :
$add=mysql_query("INSERT INTO contenu (contenu) VALUES ('$contenu')");
La connexion avec la base est bien établie, j’ai vérifié...
Mais rien n’y fait… en tout cas merci du temps que tu as bien voulu me consacrer.
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 6 mai 2008 à 07:17
cela provient de ta base :
fait :
$add=mysql_query("INSERT INTO contenu (textes) VALUES ('$contenu')");<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
met le champ textes en longtext dans ta base
Il n'y a pas de raison pour que ça marche pas.
Tu vas y arriver