Partage
  • Partager sur Facebook
  • Partager sur Twitter

tinyMce et Ajax

non compatible

    26 mai 2010 à 22:34:15

    Bonjour,

    J'ai un soucis quant à la compatibilité de l'envoie d'un commentaire en ajax et tinyMce.

    Lorsque j'envoie un commentaire en ajax sans la mise en forme de tinyMce, tout fonctionne.
    Mais lorsque que je colle tinyMce à mon textarea, le champs du commentaire est vide dans ma table.

    J'ai tenté de "bidouiller" mais pas moyen de rendre ces deux outils compatble.

    Si vous avez deja eu le soucis ou si vous avez une piste, merci de me repondre!


    Code Ajax :
    /* à l envoie de mon formulaire */
    	$('#submit').click(function() {
    	
    	/* j affiche un gif d attente */
    	$('#envoyerComs').append('<center><img src="images/graph/ajax-loader.gif" alt="Currently Loading" id="loading" /></center>');
    	
    		/* je créée mes variables avec mes données */
    		var id_news = $('#id_news').val();
    		var id_peuple = $('#id_peuple').val();
    		var commentaire = $('#commentaire').val();
    		
    		/* envoie de mes données à la requete */
    		$.ajax({
    			url: 'config/addCommentaire.php',
    			type: 'POST',
    			data: 'id_news=' + id_news + '&commentaire=' + commentaire + '&id_peuple=' + id_peuple,
    			
    			/* affichage de la validation - ou non - de mon ajout */
    			success: function(result) {
    				$('#response').remove();
    				$('#envoyerComs').append('<p id="response">' + result + '</p>');
    				$('#loading').fadeOut(500, function() {
    					$(this).remove();
    				});
    				
    			}
    		});
    		
    		return false;
    	});
    


    L'initialisation de mon text area avec tinyMce + fonction
    tinyMCE.init({
        theme : "advanced",
        mode: "exact",
    	save_callback: "sendAjaxRequest",
        elements : "commentaire",
        theme_advanced_toolbar_location : "bottom",
        theme_advanced_buttons1 : "bold,italic,underline,strikethrough,forecolor,separator,"
        + "link,unlink,separator,"
    	+ "undo,redo",
        theme_advanced_buttons2 : "",
        theme_advanced_buttons3 : "",
        height:"200px",
        width:"510px",
        file_browser_callback : 'myFileBrowser'
    });
    
    function myFileBrowser (field_name, url, type, win) {
        var fileBrowserWindow = new Array();
        fileBrowserWindow['title'] = 'File Browser';
        fileBrowserWindow['file'] = "my_cms_script.php" + "?type=" + type;
        fileBrowserWindow['width'] = '420';
        fileBrowserWindow['height'] = '400';
        tinyMCE.openWindow(fileBrowserWindow, { window : win, resizable : 'yes', inline : 'yes' });
        return false;
    }
    


    Et enfin la requete d'ajout du commentaire dans ma table
    <?php
    include('connexion.php');
    $query = "INSERT into coms(id_news, commentaire, id_peuple, coms_time) VALUES (?, ?, ?, ?)";
    
    $stmt = $mysqli->stmt_init();
    if($stmt->prepare($query)) {
    	$stmt->bind_param('isii', $_POST['id_news'], $_POST['commentaire'], $_POST['id_peuple'], time());
    	$stmt->execute();
    }
    
    if($stmt) {
    echo "<center>Merci de ta participation!</center>";
    } else {
    echo "<center>Il y a eu un probleme, mmmh..</center>";
    }
    
    ?>
    


    Merci d'avance!

    JC

    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2010 à 0:59:40

      Tu ne peux pas récupérer la valeur du commentaire comme tu fais ligne 10.

      Il faut que tu utilises la méthode getContent() de TinyMCE.

      Regarde le code de cet exemple :
      http://tinymce.moxiecode.com/examples/example_06.php
      • Partager sur Facebook
      • Partager sur Twitter
        27 mai 2010 à 22:49:55

        Ou sinon, c'est à vérifier, mais peut-être que mettre ta fonction de callback sur le onsubmit du formulaire au lieu du onclick sur le bouton fonctionnerait.
        • Partager sur Facebook
        • Partager sur Twitter
          28 mai 2010 à 11:11:34

          Je récupère bien ma valeur avec .val(), donc le getContent() ne changera rien!

          Pour ce qui est du onsubmit à la place du onclick, le resultat est le même!
          Avec markitup (plugin jquery qui fait le même travail presque) j'arrive bien à récupérer le commentaire et à l'insérer dans la base. Le soucis vient donc de tinyMCE..

          • Partager sur Facebook
          • Partager sur Twitter
            29 mai 2010 à 19:06:46

            Comment tu sais que tu récupères bien ta valeur ? Quels tests as-tu fait pour t'en assurer ?
            • Partager sur Facebook
            • Partager sur Twitter

            tinyMce et Ajax

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown