[AJAX] Iframe, Div et Ajax
Bonsoir à toutes et tous, voici mon probleme du jour.
J'ai mis en place xAjax, qui marche très bien. J'ai mis en place FCKeditor, qui marche aussi très bien.
Par contre lorsque je veux mettre à jour une instance de FCKeditor avec xAjax, ben ça marche plus.
J'ai trouvé l'endroit où le "dessin" de l'éditeur se fait, et il est fait avec une iframe !!!!!!!! Je voulais donc remplacer ça par une div bien plus pratique puisque pour xAjax, on peut mettre à jour le contenu d'une balise dont on a l'ID (d'ailleurs ça ne marche pas avec l'ID de l'iframe !).
Probleme : la ligne de code d'origine est comme suit :
<iframe id="{$this->InstanceName}___Frame" src="{$Link}" width="{$this->Width}" height="{$this->Height}" frameborder="0" scrolling="no"></iframe>
Or la source link est du style :
http://monserveur.com/editor/fckedit...oolbar=MaBarre
Si je mets une div, la ligne de code serait comme suit (à peu près !), mais je ne peux plus avoir l'éditeur FCKeditor :
<div id="{$this->InstanceName}___Frame" style="width:{$this->Width}; height:{$this->Height}">$Link</div>
et ça m'affiche le lien en texte ... normal !
J'ai essayé avec include($Link) et ça ne fonctionne pas bien entendu.
Donc là je ne sais pas trop quoi faire :?
Quelqu'un saurait-il, soit comment modifier le contenu d'une iframe, soit comment afficher le résultat d'un lien dans une div ?
Merci pour votre aide et vos conseils ;)
pour finir (enfin je pense)
Voici quelques questions pour terminer si je peux encore abuser... :oops:
Tout d'abord le code intégral
Code:
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
| <?php
// Fonctions XAJAX
function ma_fonction($arg)
{
// ici tu mets ton code : acces DB ou autre
if($arg=='1')
{
$contenue='test1';
}
elseif($arg=='2')
{
$contenue='test2';
}
else
{
$contenue= include("../text/edito1.php");
}
$objResponse = new xajaxResponse();
$objResponse->addAssign("id_de_ta_div","innerHTML","$contenue");
return $objResponse->getXML();
}
require("xajax.inc.php");
$xajax = new xajax(); //On initialise l'objet xajax
//Déclaration des fonctions PHP
$xajax->registerFunction('ma_fonction');
$xajax->processRequests();//Fonction qui va se charger de faire les requetes
?>
<html>
<head>
<?php $xajax->printJavascript();/*Fonction qui va afficher le javascript de la page*/ ?>
</head>
<body>
<select onChange="xajax_ma_fonction(this.value);">
<option value="1" selected="selected">select 1</option>
<option value="2">select 2</option>
<option value="3">select 3</option>
</select>
<li><a href='quoi mettre pour afficher le fichier dans le div'>test1</a></li>
<li><a href='quoi mettre pour afficher le fichier dans le div'>test2</a></li>
<li><a href='quoi mettre pour afficher le fichier dans le div'>test3</a></li>
<div id="id_de_ta_div"></div>
</body>
</html> |
dans le code ci-dessus, j'ai deux problématique.
La première est la partie inclus dans ma_fonction($arg) où je tente de passer un fichier php dans une variable $contenue mais cela ne fonctionne pas ! Le navigateur m'affiche un message XML d'erreur !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| function ma_fonction($arg)
{
// ici tu mets ton code : acces DB ou autre
if($arg=='1')
{
$contenue='test1';
}
elseif($arg=='2')
{
$contenue='test2';
}
else
{
$contenue= include("../text/edito1.php");
} |
La seconde question est que ton menu déroulant fonctionne bien, mais j'ai besoin de travailler avec un menu en forme de liste comme je l'ai mis ici... comment dois je inclure le "onclick" si c'est bien celui là qu'il faut ajouter !
Code:
1 2 3
| <li><a href='quoi mettre pour afficher le fichier dans le div'>test1</a></li>
<li><a href='quoi mettre pour afficher le fichier dans le div'>test2</a></li>
<li><a href='quoi mettre pour afficher le fichier dans le div'>test3</a></li> |
Merci encore et d'avance.
return $objResponse->getXML();
Je reviens vers toi sur ce point
Code:
return $objResponse->getXML();
Pourquoi mettre getXML dans cette variable de la fonction ?
Je pense que c'est peut etre cela qui pose un problème pour passer mes fichiers PHP en variable et comme je n'y connais pas grand chose en XML... me revoilà
Merci encore et je confirme tu peux faire :yaisse2: ca fait toujours du bien pour son égau et en plus c'est vrai ! tu m'as bien aidé sur ce coup là ! ;)
j'ai (enfin) trouvé ma solution
Pour la dernière fois, (du moins j'espère), je poste un message sur cette discution :) - ps : encore merci à toi Kahlyv
Donc voici la façon de passer un fichier dans une variable dans la fonction précédente en xajax.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| function ma_fonction($arg)
{
// ici tu mets ton code : acces DB ou autre
if($arg=='1')
{
require('../text/edito1.php'); // attention dans ce fichier on met tout le texte dans une variable appelé $contenue1
$contenue= $contenue1; // on appel cette variable dans la fonction
}
elseif($arg=='2')
{
require('../text/edito2.php'); // attention dans ce fichier on met tout le texte dans une variable appelé $contenue2
$contenue= $contenue2; // on appel cette variable dans la fonction
}
else
{
require('../text/edito3.php'); // attention dans ce fichier on met tout le texte dans une variable appelé $contenue3
$contenue= $contenue3; // on appel cette variable dans la fonction
}
$objResponse = new xajaxResponse();
$objResponse->addAssign("id_de_ta_div","innerHTML","$contenue");
return $objResponse->getXML();
} |
voici un exemple d'un des fichiers edito1.php
Code:
1 2 3 4 5 6
| <?
$contenue1={"
insérer ici votre texte
blablablabla
"};
?> |
je trouverais peut être plus simple ensuite mais là tout fonctionne et tout s'affiche dans ma DIV et c'est plutot cool.
Donc voilà !!!
Fini et maintenant je continue.
(ps du 26 Mars 2007 : je reviendrais mettre le lien du site que je développe dès qu'il sera mis en ligne - lancement du site prévu pour mi-avril) pour vous donner le rendu et l'intérêt de ce développement.
Merci encore à Kahlyv:yaisse2: :yaisse2: :yaisse2: