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

jQuery Discussion :

plugin FCKEditors et UI Dialog


Sujet :

jQuery

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 75
    Par défaut plugin FCKEditors et UI Dialog
    J'ai un champ textarea dans un UI Dialog, je ne parviens pas à poster le contenu du textarea généré par FCKEditor.

    voici le code PHP qui me génère mon champ FCK Editor fonctionnel :
    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
    	<div class="ligne-form">
    		<label for="name">Commentaire :</label>
    	<?php
    					include("ressources/fckeditor/fckeditor.php");
     
    					$oFCKeditor=new FCKeditor('FichCommentaire');
    					$oFCKeditor->BasePath="ressources/fckeditor/";
    					$oFCKeditor->Config['SkinPath'] = "skins/silver/";
    					$oFCKeditor->ToolbarSet="Doc";
    					$oFCKeditor->Width=320;
    					$oFCKeditor->Height=200;
    					if(isset($_GET['FichierId']))
    						$oFCKeditor->Value=stripslashes($data_fichier['FichCommentaire']);
    					else
    						$oFCKeditor->Value="";
    					$oFCKeditor->Create();
    				?>
    	</div>
    Je souhaite donc récupérer FichCommentaire, seulement le input hidden de Fckeditor ne se met à jour suite à la saisi de contenu, comment récupérer le contenu de l'iframe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class="ligne-form">
    <label for="name">Commentaire :</label>
    <input id="FichCommentaire" type="hidden" style="display:none" value="commentaire" name="FichCommentaire">
    <input id="FichCommentaire___Config" type="hidden" style="display:none" value="SkinPath=skins/silver/">
    <iframe id="FichCommentaire___Frame" width="320" height="200" frameborder="0" scrolling="no" src="ressources/fckeditor/editor/fckeditor.html?InstanceName=FichCommentaire&Toolbar=Doc" style="margin: 0pt; padding: 0pt; border: 0pt none; background-color: transparent; background-image: none; width: 320px; height: 200px;">

    sachant que je récupère les éléments en javascript pour une soumission en ajax de la boite de dialogue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var FichCommentaire=$( "#FichCommentaire" )
    Merci.

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Le contenu d'un "iframe" est accessible après le chargement complet de la page, exemple pour un division d'ID "conteneur" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $(window).load(function(){
    	var obj = $("#FichCommentaire___Frame").contents().find("#conteneur");
     
    	console.log(obj);
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 75
    Par défaut
    bonjour,
    quel conteneur dois-je mettre je m'aperçois que j'ai une i-frame dans l'iframe principal.

    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
    <div class="ligne-form">
    <label for="name">Commentaire :</label>
    <input id="FichCommentaire" type="hidden" style="display:none" value="commentaire" name="FichCommentaire">
    <input id="FichCommentaire___Config" type="hidden" style="display:none" value="SkinPath=skins/silver/">
    <iframe id="FichCommentaire___Frame" width="320" scrolling="no" height="200" frameborder="0" src="ressources/fckeditor/editor/fckeditor.html?InstanceName=FichCommentaire&Toolbar=Doc" style="margin: 0pt; padding: 0pt; border: 0pt none; background-color: transparent; background-image: none; width: 320px; height: 200px;">
    <html>
    <head>
    <body>
    <table width="100%" cellspacing="0" cellpadding="0" style="height: 100%; table-layout: fixed">
    <tbody>
    <tr id="xToolbarRow" style="">
    <tr>
    <td id="xEditingArea" valign="top" style="height: 100%">
    <iframe frameborder="0" style="height: 138px; width: 100%;">
    <html dir="ltr">
    <head>
    <body spellcheck="false">
    commentaire
    <br _moz_dirty="">
    <p>
    <strong>gras</strong>
    </body>
    </html>
    </iframe>
    </td>
    </tr>
    </tbody>
    </table>
    </body>
    </html>
    </iframe>
    </div>
    Merci.

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Il m'est impossible de tester votre code, mais j'ai testé le chargement d'une page dans un iframe, cette page contenant un autre iframe. J'ai accès au second iframe sans problème.

    Dans votre cas, pour avoir accès au contenu du body du second iframe, je suggère d'essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var obj = $("#FichCommentaire___Frame").contents().find("iframe").contents().find("body");
     
    console.log(obj, obj.text(), obj.html());

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 75
    Par défaut
    J'ai mis en place votre solution,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    </script>
    <script>
    $(window).load(function(){
    var FichCommentaire = $("#FichCommentaire___Frame").contents().find("iframe").contents().find("body").html();
    console.log(FichCommentaire);
    });
    </script>
    lorsque je fais un alert, il me donne bien le contenu de l'iframe au chargement de la page, mais lorsque je modifie le contenu de l'iframe (FCKeditor), les données envoyés sont celles d'origine.

    comment récupérer la valeur pour pouvoir la transmettre en ajax.

    merci.

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Le contenu du second iframe est une page web, elle peut charger sa version de jQuery et faire une transaction AJAX.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 75
    Par défaut
    bonjour,
    ce n'est pas clair, pouvez-vous expliquer avec du code ou en évoquant les conteneurs.

    Merci.

    [Edit] sachant que c'est fckditor qui génère ces 2 i-frames, je n'ai donc pas la main dessus.

    Merci.

  8. #8
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    $(window).load(function(){..}); permets une action dès que la page est construite.

    Pour une transaction AJAX, il faut récupérer les données au dernier moment.

    Et donc, appeler : var FichCommentaire = $("#FichCommentaire___Frame").contents().find("iframe").contents().find("body").html(); au moment de l'incorporer dans le paramètre data de la transaction AJAX.

    Mais je ne sais pas si cela donnera le résultat espéré.

    Je n'utilise pas le plugin FCKEditors, mais dès la première page du site, je vois que :
    It integrates FCKEditors with the jQuery Form Plugin and enables the contents of FCKEditor to be submitted via ajax.
    Donc le moyen adéquat de récupérer le contenu via une transaction AJAX est d'utiliser le plugin Form.

    Il semblerait que la version récente soit CKEditor

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 75
    Par défaut
    j'utilise le plugin jquery form sur d'autres parties du site, je vais voir pour l'intégrer.

    Je teste ça demain.

    Merci.

Discussions similaires

  1. [Plugin] Ouvrir un wizard dialog page
    Par bulldo dans le forum Eclipse Platform
    Réponses: 5
    Dernier message: 28/07/2010, 15h44
  2. [CKEditor] Ajouter un plugin pour le FCKEditor
    Par anobiste dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 18/09/2009, 14h52
  3. Le plugin Fckeditor et l'erreur 500
    Par tankt31 dans le forum Ruby
    Réponses: 2
    Dernier message: 08/06/2009, 16h51
  4. [CKEditor] Traduction de chaîne dans la page html d'un plugin de FCKeditor
    Par nico_ dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 17/04/2009, 10h46
  5. FCKeditor - Plugin
    Par DarkCerise dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/07/2006, 11h21

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