Ik probeer via ajax (waar ik nog niet zolang mee bezig ben) ckeditor op mijn scherm te krijgen als ik een knop aanklik. Ik heb al heleboel verschillende dingen geprobeerd en veel gegoogled maar kom er niet uit.
Het enigste wat ik binnenkrijg ik een textarea zonder ckeditor.

(Het ajax scriptje hier beneden is niet van mijzelf maar ik gebruik het als leerscript van phpacademy)

index.php:

<head> 
<script type="text/javascript" src="js/jquery-1.9.0.min.js"></script>
 <script type="text/javascript" src="ckeditor/ckeditor.js">
CKEDITOR.replace("ckeditor1"); </script> 
<script type="text/javascript">
function load(thediv , thefile) {
	
if(window.XMLHttpRequest){
	xmlhttp = new XMLHttpRequest();
	}else{
	xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
	}	
	
	xmlhttp.onreadystatechange = function(){
	
	if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
		
		document.getElementById(thediv).innerHTML = xmlhttp.responseText;
			}	
		}
	xmlhttp.open('GET', thefile , true);
	xmlhttp.send();
	}
</script>

</head>

<body>

<a onclick="load('cdiv','teksteditor.php?id=1')" href="#" > klik</a>
<a onclick="load('cdiv','teksteditor.php?id=2')" href="#" > klik</a>
<div id="cdiv"></div>

</body>


teksteditor.php:

<?php

$id = $_GET['id'];
$query = mysql_query("SELECT id , text , titel FROM pages WHERE id = '$id'") or die(mysql_error());
while($row = mysql_fetch_assoc($query)){
echo'
<form method="post" >
<textarea class="ckeditor" id="editor1" name="editor1" >
</textarea>
<input type="submit" name="submit" value="Wijzigen5">
</form>
';
}
?>
Het probleem is:
Eerst zet je ckeditor in gang; met CKEDITOR.replace("ckeditor1");

Daarna pas haal je - met Ajax - de textarea.
Die zal dus nog niet actief zijn.

Na de ajax respons moet je ckeditor nog eens activeren.
dus bv.

...
  document.getElementById(thediv).innerHTML = xmlhttp.responseText; 
  CKEDITOR.replace("ckeditor1");
...


----

Let er verder goed op dat je nooit twee van die textarea's tegelijk op je pagina hebt, met een zelfde id.
id moet uniek zijn.
Indien er meerdere tegelijk moeten zijn, kan je bv. $id verwerken in de id (bv. id="editor26" ), en zal ckeditor actief moeten maken met die zelfde id (bv. CKEDITOR.replace("ckeditor26"); ).
Maar ik veronderstel dat dit niet onmiddellijk nodig zal zijn.
Kris je bent een held! Dit werk super. bedankt!
Niet helemaal nodig om ckeditor telkens opnieuw te instantiƫren:
[code]<script>
var aneditor = CKEDITOR.replace("ckeditor1");
//en dan binnen de document.ready
aneditor.setData(xmlhttp.responseText)
</script>

Reageren