Titre: pb actions_ckeditors
Posté par: titilafada le le 19-01-2011 a 10:26:11
BOnjour,
je me présente titilafada, je suis actuellement en auto formation pour certains langage (php html css, javascript, ...). Pour pouvoir apprendre j'ai deja realise (simplement) 3 site.
Je vous sollicite suite a un soucis que j'ai pour mon 4ieme site en route. J'ai besoin d'y faire une partie admin particuliere qui ne necessitera qu'un clic de la personne (dans page securise) pour atteindre le fckeditor. J'ai donc (avec l'aide de qq personne ) fait ceci : J'ai donc intégrer le fck editor, qui permet de taper texte et de l'integrer dans base de donnees. Cela fonctionner tres bien jusqu'a ce que je rajoute une deuxieme page administrable. Et la ca c'est complique. MOn fichier actions_fckeditor. js semble poser pb. J'y ai mis les deux variable que je souhaiter modifier "accueil" et "manif" mais ca n'a fait qu'entrainer la disparition de mon editeur.
Je vous montre ci dessous les differents fichiers lie a mon pb. Si qq un a un conseil , ce serait super .... je debute en javascr donc je ne controle pas encore tout , je voudrais juste comprendre. Merci d'avance:
Code:
<?php // Traitements de l'info (envoyer, recevoir) require_once('inc/traitementsindex.php'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <title>AMEPT Association Mieux Vivre Pour Tous</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="title" content="Association mieux vivre pour tous" /> <meta name="MSSmartTagsPreventParsing" content="true" /> <meta name="google-site-verification" content="H1Z2btn-TiYMwPkgmzqJeGniRdPpSfpw2RpK-ETcoKg" /> <link rel="stylesheet" type="text/css" href="css/styles.css" /> <meta name="keywords" lang="fr" content="ma_page" /> <meta name="description" content="ma_page" /> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" /> <meta http-equiv="Content-Language" content="fr,es,en" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <script type="text/javascript" src="js/XHRBis.js"> </script> <script type="text/javascript" src="ckeditor/ckeditor.js"> </script> <script type="text/javascript" src="js/actions_editeur.js"> </script>
</head>
<body>
<div id="header"></div> <!-- Affichage du bandeau --> <div id="wrapper"> <!-- Creation du cadre contenant les informations -->
<div id="content-wrapper"> <!-- Affichage de la partie centrale --> <?php include("menuprincipal.php")?> <!-- On cache le div modifText au chargement de la page -->
<div id="main"> <!-- Affichage du corps du site -->
<body onload="cacher();"> <!-- Le div contenant recevant l'éditeur --> <div id="editeur"> <div name="modifText" id="modifText"></div> </div> <!-- Le div contenant le texte --> <div id="accueil" style="cursor:pointer;" onclick="modifier(<?php echo $accueil_data['id'];?>);"> <?php echo $accueil_data['texte'];?></div> </body> <img class="roger"src="css/roger.png"/> <center><img src="css/animation.gif"/></center>
</div> <div id="carte"> <img class="carte" src="css/carte.png"/> </div> </div>
</div>
</body> </html> |
|
Code:
// Cacher le div au chargement de la page function cacher(){ document.getElementById('modifText').style.visibility = "hidden"; } // Fermer l'éditeur function fermer_edit(){ if(document.getElementById('modifText').style.visibility == "visible"){ // On vide le div var count = Math.random(); var str = 'count='+count; var fermer = CreateXMLHttpRequest (); var method = 'POST'; var filename = 'inc/empty.php'; fermer.open(method, filename, true); fermer.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); fermer.onreadystatechange = function(){ if(fermer.readyState == 4) { var tmp = fermer.responseText; // destroy editor editor.destroy(); editor = null; document.getElementById('modifText').innerHTML = tmp; document.getElementById('modifText').style.visibility = "hidden"; } } fermer.send(str); } }
function modifier(id_texte, type){ if(document.getElementById('modifText').style.visibility == "hidden") { document.getElementById('modifText').style.visibility = "visible"; // On affiche le texte dans le div var count = Math.random(); // count évite d'avoir 2 requêtes identiques envoyées, sinon ça bogue
var modifier = CreateXMLHttpRequest (); var method = "POST"; if(type == 'manif'){ var str = "rid_manif="+id_manif+"&count="+count; var filename = "inc/modif_manifestations.php"; } else { var str = "id_accueil="+id_accueil+"&count="+count; var filename = "inc/modif_index.php"; } modifier.open(method, filename, true); modifier.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); modifier.onreadystatechange = function(){ if(modifier.readyState == 4) { var tmp = modifier.responseText; document.getElementById('modifText').innerHTML = tmp; editor = CKEDITOR.replace( 'mon_editeur' ); } } modifier.send(str); } }
|
|
modif index.php
Code:
<?php if(isset($_POST['id_texte'])){ if(!empty($_POST['id_texte'])){ require_once ('config.php'); $bdd = new PDO(DSN, USER, PASS); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); // Extraction des infos de l'article $accueil = $bdd->prepare("SELECT * FROM accueil WHERE id = ? ORDER BY id LIMIT 0, 1"); $accueil->execute(array($_POST['id_texte'])); $accueil_data = $accueil->fetch(); $accueil->closeCursor(); } } ?> <script type="text/javascript" src="ckeditor/ckeditor.js"> </script> <div id="modif_text_contain"> <div id="modif_text_action"> <form action="index.php" method="post"> <textarea id="mon_editeur" name="mon_editeur"><?php echo $accueil_data['texte'];?></textarea> <input type="hidden" name="texte" type="accueil" value="<?php echo $_POST['id_texte'];?>"/> </form> <div onclick="fermer_edit();" style="color:#d46a0a; text-align:center; cursor:pointer;" >FERMER L'EDITEUR</div> </div> </div> |
|
traitement index.php
Code:
<?php // Config de connexion require_once('config.php');
// Modification du texte saisi par l'utilisateur if(isset($_POST['id_texte']) && isset($_POST['mon_editeur'])){ if(!empty($_POST['id_texte']) && !empty($_POST['mon_editeur'])){ // on passe les POST récupérés dans des variables (purement esthétique) $id_accueil = $_POST['id_texte']; $accueil = $_POST['mon_editeur']; $bdd = new PDO(DSN, USER, PASS); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); $req = $bdd->prepare("UPDATE accueil SET texte = :accueil WHERE id = :id_accueil"); $req->execute(array( 'accueil' => $accueil, 'id_accueil' => $id_accueil, )); $req->closeCursor(); } } // Affichage du texte de l'éditeur (si l'utilisateur à enregistré quelquechose) $bdd = new PDO(DSN, USER, PASS); // connexion à la base $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); // gestion des erreurs - affichage Warning $accueil = $bdd->query("SELECT * FROM accueil ORDER BY ID LIMIT 0,1") or die ('pc chargement du texte'); // sélection des données $accueil_data = $accueil->fetch(); // Puisqu'une seule donnée attendue $accueil->closeCursor();
?>
|
|
je prefere tout mettre pour que ce soit plus clair
|
Titre: Re:pb actions_ckeditors
Posté par: titilafada le le 20-01-2011 a 10:18:24
bonjour,
donc finalement j'ai renome mes fonctions au lieu de passer par des conditions. Ca fonctionne pour la partie manifestations ( avec la fonction modifier2 dans actions_ckeditors, en premiere ou deuxieme position, elle fonctionne, et modifie ma page manifestation). Par contre pour ma page index, j'ai encore un souci, maintenant l'editeur s'affiche mais me met directement ecrit dans l'editeur: "Notice: Undefined variable: accueil_data in C:\wamp\www\inc\modif_index.php on line 20 "
mon code pour cette page correspond à ceci:
Code:
<?php if(isset($_POST['id_accueil'])){ if(!empty($_POST['id_acceuil'])){ require_once ('config.php'); $bdd = new PDO(DSN, USER, PASS); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); // Extraction des infos de l'article $accueil = $bdd->prepare("SELECT * FROM accueil WHERE id = ? ORDER BY id LIMIT 0, 1"); $accueil->execute(array($_POST['id_accueil'])); $accueil_data = $accueil->fetch(); $accueil->closeCursor(); } } ?> <script type="text/javascript" src="ckeditor/ckeditor.js"> </script> <div id="modif_text_contain"> <div id="modif_text_action"> <form action="index.php" method="post"> <textarea id="mon_editeur" name="mon_editeur"><?php echo $accueil_data['texte'];?></textarea> <input type="hidden" name="id_accueil" value="<?php echo $_POST['id_accueil'];?>"/> </form> <div onclick="fermer_edit();" style="color:#d46a0a; text-align:center; cursor:pointer;" >FERMER L'EDITEUR</div> </div> </div> |
|
et mon actions_editos maintenant à ceci :
Code:
// Cacher le div au chargement de la page function cacher(){ document.getElementById('modifText').style.visibility = "hidden"; } // Fermer l'éditeur function fermer_edit(){ if(document.getElementById('modifText').style.visibility == "visible"){ // On vide le div var count = Math.random(); var str = 'count='+count; var fermer = CreateXMLHttpRequest (); var method = 'POST'; var filename = 'inc/empty.php'; fermer.open(method, filename, true); fermer.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); fermer.onreadystatechange = function(){ if(fermer.readyState == 4) { var tmp = fermer.responseText; // destroy editor editor.destroy(); editor = null; document.getElementById('modifText').innerHTML = tmp; document.getElementById('modifText').style.visibility = "hidden"; } } fermer.send(str); } }
function modifier2(id_manif){ if(document.getElementById('modifText').style.visibility == "hidden"){ document.getElementById('modifText').style.visibility = "visible"; // On affiche le texte dans le div var count = Math.random(); // count évite d'avoir 2 requêtes identiques envoyées, sinon ça bogue var str = "id_manif="+id_manif+"&count="+count; var modifier = CreateXMLHttpRequest (); var method = "POST"; var filename = "inc/modif_manifestations.php"; modifier.open(method, filename, true); modifier.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); modifier.onreadystatechange = function(){ if(modifier.readyState == 4) { var tmp = modifier.responseText; document.getElementById('modifText').innerHTML = tmp; editor = CKEDITOR.replace( 'mon_editeur' ); } } modifier.send(str); } }
function modifier(id_accueil){ if(document.getElementById('modifText').style.visibility == "hidden"){ document.getElementById('modifText').style.visibility = "visible"; // On affiche le texte dans le div var count = Math.random(); // count évite d'avoir 2 requêtes identiques envoyées, sinon ça bogue var str = "id_accueil="+id_accueil+"&count="+count; var modifier = CreateXMLHttpRequest (); var method = "POST"; var filename = "inc/modif_index.php"; modifier.open(method, filename, true); modifier.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); modifier.onreadystatechange = function(){ if(modifier.readyState == 4) { var tmp = modifier.responseText; document.getElementById('modifText').innerHTML = tmp; editor = CKEDITOR.replace( 'mon_editeur' ); } } modifier.send(str); } } |
|
je comprends bien que le message d'erreur signifie que la var data_accueil n'est pas defini mais elle y est pourtant au debut d ema page modif_index.
Est ce que qq un aurait une suggestion... je suis vraiment en galere.... je sais que je debute que mes codes ne sont peut etre pas tres propre mais faut bien commencer qq part. ALors vraiment juste un petit message pour me conseiller ce serait sympa.
bonne journee |
Titre: Re:pb actions_ckeditors
Posté par: titilafada le le 20-01-2011 a 11:30:35
je voulais apporter une petite precision à mon precedent message : si je supprime la ligne d'erreur dans ckediteur, et que je tape du texte je sauvegarde mon texte, ca me l'affiche bien et l'enregistre dans bdd. Il n'a qu'a la lecture des données, quand ma page mofi index, veut afficher le texte deja rentre que ca bug... je n'ai pas d'explication. Bug que je dois absolument corriger car si la personne doit retaper son texte a chaque fois ca va pas la faire
merci d'avance |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|