Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [advAjax] a FCKeditor
Forum PHP.pl > Forum > XML, AJAX > AJAX
cornholio666
Wtam,

Mam 3 pliki:


1:
  1. <a href="java script:void();" onClick="addnews();" >Dodaj newsa</a>
  2. <div id="komunikat"></div>


2:
  1. function $(id) {
  2. return document.getElementById(id);
  3. }
  4. function addnews() {
  5. var zapytanie = "../includes/news/addnews.php";
  6. advAJAX.get({
  7. url : zapytanie,
  8.  
  9. onInitialization : function(obj){
  10. $("komunikat").innerHTML = 'Ładowanie';
  11.  
  12. },
  13.  
  14. onSuccess : function(obj) {
  15. $("komunikat").innerHTML = obj.responseText;
  16.  
  17. },
  18. onError : function(obj) { alert("Error: " + obj.status); }
  19. });
  20. }


3:
  1. <?php
  2. include "../FCKeditor/fckeditor.php";
  3.  
  4.  $sBasePath = "../includes/FCKeditor/";
  5.  $oFCKeditor = new FCKeditor('prev_content') ;
  6.  $oFCKeditor->Width = '450' ;
  7.  $oFCKeditor->Height = '250' ;
  8.  $oFCKeditor->BasePath = $sBasePath ;
  9.  $oFCKeditor->Value = $_SESSION['prev_content'];
  10.  $oFCKeditor->Create() ;
  11. ?>


Klikam w "Dodaj newsa" wyświetla mi sie textarea z fckeditorem wszystko elegancko ale klikne jeszcze raz to mam pusty textarea. Musze przeładowac strone zeby działało poprawnie.

Dlaczego? I jak temu zaradzic?
anopak
musisz wywołać fckeditor z pełną ścieżką dostępu, wtedy powinno zadziałać za każdym razem...
cornholio666
Cytat
musisz wywołać fckeditor z pełną ścieżką dostępu, wtedy powinno zadziałać za każdym razem...


Czyli jak? bo cos niezabardzo rozumiem tiredsmiley.gif


Chodzi o tą część kodu?
  1. <?php
  2. $sBasePath = "../includes/FCKeditor/";
  3. ?>
anopak
tak dokładnie o tą chodzi...

przykład:
fck masz w http://serwer/includes/FCKeditor/
to ustaw na $sBasePath = "/includes/FCKeditor/";
cornholio666
Zrobiłem jak napisałes i nic to nie zmienia. Jakieś inne pomysły ?
anopak
troche dookoła, ale działa:

zmodyfikowany 2 plik:
Kod
function $(id) {
return document.getElementById(id);
}

var LOADED=false;

function addnews() {
var zapytanie = "../includes/news/addnews.php?loaded="+(LOADED?1:0);
advAJAX.get({
url : zapytanie,

onInitialization : function(obj){
$("komunikat").innerHTML = 'Ładowanie';

},

onSuccess : function(obj) {
if(!LOADED){
$("komunikat").innerHTML = obj.responseText;
LOADED=true;
}
else{

var oEditor = FCKeditorAPI.GetInstance('prev_content');
oEditor.SetHTML(obj.responseText,false);

}

},
onError : function(obj) { alert("Error: " + obj.status); }
});
}


zmodyfikowany 3 plik:
  1. <?php
  2. if($_GET['LOADED']){
  3. echo $_SESSION['prev_content'];
  4. }
  5. else{
  6. include "../FCKeditor/fckeditor.php";
  7.  
  8.  $sBasePath = "../includes/FCKeditor/";
  9.  $oFCKeditor = new FCKeditor('prev_content') ;
  10.  $oFCKeditor->Width = '450' ;
  11.  $oFCKeditor->Height = '250' ;
  12.  $oFCKeditor->BasePath = $sBasePath ;
  13.  $oFCKeditor->Value = $_SESSION['prev_content'];
  14.  $oFCKeditor->Create() ;
  15. }
  16. ?>


u mnie działa... jest tylko jeden problem... raz załadowany edytor musi pozostać w oknie... czyli po zapisaniu najlepiej ukryć DIV'a z formularzem...
mls
Po usunięciu FCK trzeba wyczyścić jego zmienne:
Kod
__FCKeditorNS = null;
FCKeditorAPI = null;

Inaczej FCK nie załaduje się ponownie...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.