IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Problème pour récupérer le contenu d'un textarea [TinyMCE]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 58
    Points
    58
    Par défaut Problème pour récupérer le contenu d'un textarea
    Bonjour !

    Après des heures de recherches je n'ai toujours pas trouvé pourquoi je n'arrive pas à récupérer le contenu de mon textarea lorsque je veux poster un article...

    Coté base de données, la nouvelle ligne est bien ajoutée (id, titre, date etc...) mais contenu reste désespérément vide sauf dans le cas où je poste une image : là, la balise img est bien sauvegardée... Fou, non ?

    Peut-être pourrez-vous m'aider. Voici mon code :

    redaction.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    <head>
    <script language="javascript" type="text/javascript" src="js/mootools.js"></script>
    <script language="javascript" type="text/javascript" src="js/forms.js"></script>
    <script language="javascript" type="text/javascript" src="js/tiny_mce/tiny_mce.js"></script>
    <script language="javascript" type="text/javascript">
     
    tinyMCE.init({
    	mode : "textareas",
    	theme : "advanced",
    	language : "fr",
    	plugins : "fullscreen,ibrowser",
    	theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,|,fontselect,fontsizeselect,|,bullist,numlist,|,outdent,indent,blockquote,|,link,unlink,|,forecolor,|,fullscreen,|,ibrowser",
    	theme_advanced_buttons2 : "",
    	theme_advanced_buttons3 : "",
    	theme_advanced_toolbar_location : "top",
    	theme_advanced_toolbar_align : "center",
    	theme_advanced_resizing : true,
    	relative_urls : false
    });
     
    window.addEvent('load', initRequest);
     
    function initRequest() {
    var envoi = $('envoi_redaction');
    envoi.addEvent('click', sendform_redaction);
    }
     
    function sendform_redaction(e) {
     
    	if (checkform('form_redaction') == true) {
    	// capture de lévénement
    	var myEvent = new Event(e);
    	// on le eutralise
    	myEvent.stop();
    	var log = $('res_redaction').empty().addClass('ajax-loading');
    	var url = "validation/valid_redaction.php";
    	new Ajax (url, {
    		method:'post',
    		update: log,
    		data:document.forms[0],
    		encoding:'utf-8',
    		onComplete: function() {
    			log.removeClass('ajax-loading');
    		}
    	}).request();
    	}
    }
     
    function checkform(formname) {
      var errors = 0; 
      errors += checkText(formname, 'titre');	
     
      if (errors == 0) {
    	return true;
     
      } 
      else {
      	return false;
    	}
    }
    </script>
    </head>
     
    <body>
      <div class="contenu">
     
    	<?php  
              include_once('inc/menu_admin.php');
              include_once('js/tiny_mce/plugins/ibrowser/config/config.inc.php');
            ?>
     
            <form method="post" name="form_redaction" action="validation/valid_redaction.php" id="form_redaction">
     
    		<label for="document" class="label_form">
    			Type de document : 
    			<select name="document" id="document" class="select_form">
    				<option value="article">Article</option>
    				<option value="dossier">Dossier</option>
                            </select>
                    </label>
     
                    <label for="categorie" class="label_form">
    			Catégorie : 
    			<select name="categorie" id="categorie" class="select_form">
    			        <option value="1">Les sorties</option>
    				<option value="2">L'Association</option>
    				<option value="3">La Fédération</option>
    			</select>
    		</label>
     
                     <label for="titre" class="label_form">
    		         Titre : <input type="text" name="titre" id="titre" size="35" class="input_form" maxlength="50" />
    			<div id="erreur_titre" class="erreur_form">Veuillez indiquer un titre</div>
    		</label>
     
                     <label class="label_form" style="height:385px;">
    			Contenu :<br /><br /> 
                            <textarea name="contenu_redaction" id="contenu_redaction" cols="93" rows="20"></textarea>
    		<div id="erreur_contenu" class="erreur_form">Veuillez ajouter du contenu</div>
    		</label>
     
    	        <div class="centre">
    			<a href="#"><img src="img/boutons/envoyer.jpg" alt="Envoyer" id="envoi_redaction" /></a> 
    			<a href="#" onclick="document.forms.form_redaction.reset();"><img src="img/boutons/effacer.jpg" alt="Effacer" /></a>
    		</div>
    	</form>
    valid_redaction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <?php
    session_start();
    header('Content-Type: text/html; charset=ISO-8859-1');
     
    if ($_POST) {
     
            sleep(1);
            include_once('../classes/Bdd.class.php');
            include_once('../classes/Redaction.class.php');
     
     
            if (isset($_POST["document"]) && $_POST["document"] == "article") {
            
                    $redaction = new Redaction("article");
            
            }
            
            if (isset($_POST["document"]) && $_POST["document"] == "dossier") {
            
                    $redaction = new Redaction("dossier");
                    
            }
            
            if ($redaction->ajout_redaction($_POST)) {
            
                    echo "<span style=\"color:#009900; font-size:11px;\">Votre ".$_POST["document"]." a été ajouté avec succès.</div>";
            
            }
            else {
                    echo "<span style=\"color:#ff0000; font-size:11px;\">Un problème est survenu. Veuillez recommencer.</span>";
            }
     
    }
    ?>
    Redaction.class.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function ajout_redaction($infos) {
     
            foreach($infos as $value) {
    	    $value = mysql_real_escape_string($value);	
    	}
     
    	$sql1 =  "INSERT INTO redaction VALUES('', ".time().", '".$this->type."', ".$infos["categorie"].", '".$infos["titre"]."', '".$infos["contenu_redaction"]."', ".$_SESSION["id_membre"].")";
     
           $query1 = mysql_query($sql1);
     
    	return $query1;
     
    }

    PS : le texte entré dans le textarea de la page redaction.php n'est même pas transmis à valid_redaction.php...

    Merci d'avance !

  2. #2
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    J'ai trouvé une solution.

    Le problème viendrait de la cohabitation du framework js Mootools et de l'éditeur WYSIWYG TinyMCE...

    Voici ce que j'ai pu trouver sur le net :

    Now, the method I use for saving the data of a TinyMCE instance via AJAX is quite simple:

    * Call a tinyMCE.triggerSave(false,true), so that the content of the editor get placed inside the textarea the editor is replacing
    * Get the value of that textarea
    * Send that value over XHR to the server

    Now read that previous paragraph again. Yes indeed, the triggerSave() apparantly fixes this nasty bug.
    Ce qui me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function sendform_redaction(e) {
    	
    	if (checkform('form_redaction') == true) {
    	// capture de lévénement
    	var myEvent = new Event(e);
    	// on le eutralise
    	myEvent.stop();
    	tinyMCE.triggerSave();
    	ib.oEditor = document.getElementById('contenu_redaction');
    	var log = $('res_redaction').empty().addClass('ajax-loading');
    	var url = "validation/valid_redaction.php";
    	new Ajax (url, {
    		method:'post',
    		update: log,
    		data:document.forms[0],
    		encoding:'utf-8',
    		onComplete: function() {
    			log.removeClass('ajax-loading');
    		}
    	}).request();
    	}
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] problème pour récupérer toutes les lignes contenue dans un select
    Par Baleze dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2012, 21h42
  2. XSL : Problème pour visualiser le contenu de <content>
    Par externe dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 31/12/2005, 17h44
  3. problème pour récupérer une valeur dans ma bd (débutante)
    Par auryn111 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2005, 18h49
  4. [TWebbrowser] Probléme pour récupérer la source
    Par Gauth dans le forum Web & réseau
    Réponses: 8
    Dernier message: 09/04/2005, 16h57
  5. Problème pour récupérer la clé primaire
    Par caramel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2003, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo