login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Problemen met ckeditor

Offline briella15 - 02/03/2016 12:11 (laatste wijziging 02/03/2016 17:30)
Avatar van briella15Nieuw lid Voor het control panel van mijn website heb ik gekozen voor de opmaak van mijn teksten gekozen voor CKeditor http://ckeditor.com/air classic bw. Echter sinds ik de editor in de pagina heb staan submit het formulier pas na de tweede button klik. Wat ik ook probeer bij de eerste button klik gebeurt er niets. Ik heb ckeditor in de head sectie van de pagina:
  1. <script type="text/javascript" src="/../js/ckeditor/ckeditor.js"></script>


Formulier:
  1. <section id="content">
  2. <form action="/admin/pagina/update_pagina_content" method="post" name="wijzig_content_form" id="wijzig_content_form">
  3. <input name="pagina_naam" id="pagina_naam" type="hidden" value="<?php echo $pagina_content['pagina_naam']; ?>">
  4. <h2><?php echo $heading; ?></h2>
  5. <p>Gebruik het onderstaande formulier om de content voor de pagina <strong><?php echo $pagina_content['pagina_naam']; ?></strong> te wijzigen.</p>
  6. <br>
  7. <fieldset>
  8. <label>Pagina titel</label>
  9. <input name="pagina_titel" type="text" class="textfield" id="pagina_titel" value="<?php echo $pagina_content['pagina_titel']; ?>" tabindex="1" required>
  10. </fieldset>
  11. <fieldset>
  12. <label>Pagina content</label>
  13. <textarea name="pagina_content" id="pagina_content">
  14. <?php echo $pagina_content['pagina_content']; ?>
  15. </textarea>
  16. </fieldset>
  17. <br><br>
  18. <fieldset>
  19. <input name="update_button" type="submit" class="form_button" value="Wijzigingen opslaan">
  20. </fieldset>
  21. </form>
  22. </section>
  23. <script>
  24. $(document).ready(function () {
  25. CKEDITOR.replace( 'pagina_content' );
  26. });
  27. </script>


Javascript
  1. $("#wijzig_content_form").on("submit", function(e) {
  2. e.preventDefault();
  3. var pagina_naam = $("#pagina_naam").val(),
  4. pagina_titel = $("#pagina_titel").val(),
  5. pagina_content = $("#pagina_content").val();
  6.  
  7. var dataString = 'pagina_naam=' + pagina_naam + '&pagina_titel=' + pagina_titel + '&pagina_content=' + pagina_content;
  8.  
  9. $.ajax({
  10. url : "/admin/pagina/update_pagina_content",
  11. type : "post",
  12. data : dataString,
  13. success: function(data){
  14.  
  15. }
  16. });
  17. });


PHP Controller
  1. <?php
  2. public function update_pagina_contentAction()
  3. {
  4. $pagina_titel = filter_input(INPUT_POST, 'pagina_titel', FILTER_SANITIZE_STRING);
  5. $pagina_content = filter_input(INPUT_POST, 'pagina_content', FILTER_UNSAFE_RAW);
  6. $pagina_naam = filter_input(INPUT_POST, 'pagina_naam', FILTER_SANITIZE_STRING);
  7.  
  8. $update = $this->page->update_pagina_content($pagina_titel,$pagina_content,$pagina_naam);
  9.  
  10. $content_succes = new View('/admin/pagina_content_succes.php', compact('pagina_naam'));
  11. echo $content_succes->render();
  12. }
  13. ?>


Volgens mij is dit gewoon allemaal goed, maar zoals gezegd submit het formulier pas na de tweede button klik. Alleen als ik het Ajax gedeelte oversla dus rechtstreeks via het formulier naar de Controller ga werkt het goed. Wat kan hiervan de reden zijn?

mod edit: codetags

2 antwoorden

Gesponsorde links
Offline Rens - 02/03/2016 12:19
Avatar van Rens Gouden medaille

Crew algemeen
Graag even je code in code-tags plaatsen i.v.m. leesbaarheid.
Kun je meteen de regelnr's weghalen, die komen er dan automatisch voor.
Offline Thomas - 02/03/2016 17:38 (laatste wijziging 02/03/2016 17:38)
Avatar van Thomas Moderator Het hele idee van AJAX is toch dat je op dezelfde pagina blijft?

On a side note: zijn pagina_naam, pagina_titel en pagina_content wel urlencoded? Waarom gebruik je niet $('#wijzig_content_form').serialize() voor je data-attribuut?

Dit vraagstuk komt mij bekend voor. TinyMCE heeft waarschijnlijk zijn eigen routine voor het afhandelen van formulier submits. Dit proces wordt nu mogelijk "gekaapt" door jQuery. Waarschijnlijk is jouw javascript-snippet niet compatibel met de manier waarop TinyMCE werkt.

Bedenk eerst wat je precies wilt en welke "flow" daarbij hoort. Google dan eens op TinyMCE/jQuery compatibiliteit en probeer het e.e.a. uit.

Maak je gebruik van een developer console? Zie je je AJAX-posts voorbij komen in je netwerktab? Krijg je wellicht na de eerste keer JavaScript foutmeldingen waardoor JavaScript breekt en je formulier vervolgens "normaal" gesubmit kan worden?
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.188s