Ik zie daar een ernstig misbruik van het href attribuut ....
Het rel attribuut is mider ersnstig maar tegenwoordig hebben we daar het data attribuut voor.
inderdaad! Hier had ik eigenlijk nog helemaal niet aan gedacht, om het dubbel te doen.
Bedankt voor het voorbeeldje ! Dit is precies wat ik zocht :)
Ger van Steenderen op 20/11/2014 23:12:33
Ik zie daar een ernstig misbruik van het href attribuut ....
Het rel attribuut is mider ersnstig maar tegenwoordig hebben we daar het data attribuut voor.
Waarom is dit misbruik ? Eigenlijk was dit niet precies mijn href, maar mijn href="editButton/' . $tID
De functie die ik hierin ook niet beschreven heb haalt de geklikte href op om te weten waar naartoe gepost moet worden, daarom staat er ook een return false; in.
Beetje overdreven om te stellen dat het misbruik is. Ik zou voor het data-id gekozen hebben als je zonder het href attribuut kon. Maar zover ik weet is deze echt verplicht en zou je hem in deze situatie een dummy waarde geven omdat hij helemaal geen dienst doet. Extra bytes voor jan joker dus, daarom heb ik hem gewoon gebruikt.
Echter probeer ik dit nu toe te passen op een pages beheer pagina.
Hier doe ik hetzelfde, alleen ... Heb ik een div met display:none waarin m'n textarea staat. (Binnen mn <form> elementen uiteraard.
Deze div wordt een popup waarmee ik een ckeditor bovenop het hele scherm toon. Na het sluiten van de div, kan ik dus pas mijn page opslaan.
Nu heb ik een probleem met het maken van een nieuwe pagina.
Waarin ook weer deze verborgen div in zit. Nou is het probleem, de 1e keer dat ik op m'n newButton klik om te versturen, krijg ik de melding vanuit m'n controller dat new_page_content geen inhoud bevat. (In m'n post php heb ik controle of new_page_content groter is dan 1 karakter)
Als ik daarna gewoon nog een keer druk, gaat het wel goed.
Terwijl het aanpassen van m'n pages weer wel in 1 keer goed gaat. :-/
Iemand enig idee hoe dit komt?
hieronder m'n jQuery.
$('form').submit(function(event){
event.preventDefault();
var id = $(this).attr('rel');
var url = $(this).attr('action');
var data = $(this).serialize();
var success = 'false';
$.post(url, data, function(o) {
if(o.result === 'true') {
if(url === 'insertPage') {
showAlert('success','Success!','De pagina is succesvol toegevoegd.<br>Moment geduld, de pagina wordt vernieuwd.');
success = 'true';
} else {
//De code hierin doet er nu niet toe, is voor update van een pagina.
}
} else {
showAlert('danger','Fout!',o.msg);
}
}, 'json');
if(url === 'insertPage' && success === 'true') {
setTimeout(function(){ window.location.href = 'http://localhost/admin/pages'; }, (2500));
}
});
Om het even nog makkelijk te houden heb ik voor een nieuwe pagina doe ik nog geen jQuery code gedaan voor het toevoegen aan de tabel. Alleen een reload van de pagina aan het einde van de code.
Hoe doe je het met de update dan? Via de save button van CKE?
Het is even geleden, maar volgens mij moet je de gegevens ophalen met ckEditor.getData() als je buiten CKE om wilt werken.
Het is even geleden, maar volgens mij moet je de gegevens ophalen met ckEditor.getData() als je buiten CKE om wilt werken.
Hey Ger, bedankt voor de tip! Inderdaad als ik de ckeditor als var initialiseer met de replace, kan ik mbv de update een andere var invullen met de data.
Naderhand kan ik dus zoals je al zei met die var.getData() de inhoud van die ckeditor overnemen! :D