Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz ładowany z ajax nie zaczytuje tinymce
Forum PHP.pl > Forum > XML, AJAX
amii
J/W czytałem w necie ale nic nie działa. Wygląda to tak, że mam jeden centrallny plik js, który wyglada tak:
Formularz jest podczepiony do zdarzenia change i zaczytywany jako data z php, chodzi mi o to aby zaczytywał się z tinymce

[JAVASCRIPT] pobierz, plaintext
  1. function ajaxSuccess(data){
  2. //alert(data);
  3. $('#formularz_select').children().remove();
  4. $('#formularz_connect').remove();
  5. $('#formularz_select').append(data);
  6. }
  7.  
  8. function ajax_check() {
  9. $.ajax({
  10. type: 'POST',
  11. url: ajaxUrl,
  12. data: this.name + '=' + this.value + '&id=' + getParameterByName(window.location.href),
  13. success: ajaxSuccess,
  14. context: this
  15. });
  16. }
  17.  
  18. //this for tiny_mce lightweight jquery version
  19. function loader() {
  20. $('textarea').tinymce({
  21. // Location of TinyMCE script
  22. script_url : 'js/tiny_mce/tiny_mce.js',
  23.  
  24. // General options
  25. theme : "advanced",
  26. plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emot
    ions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contex
    tmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxt
    ras,template,advlist"
    ,
  27.  
  28. // Theme options
  29. theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justif
    ycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizesele
    ct"
    ,
  30. theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,out
    dent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|
    ,insertdate,inserttime,preview,|,forecolor,backcolor"
    ,
  31. theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iesp
    ell,media,advhr,|,print,|,ltr,rtl,|,fullscreen"
    ,
  32. theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acro
    nym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak"
    ,
  33. theme_advanced_toolbar_location : "top",
  34. theme_advanced_toolbar_align : "left",
  35. theme_advanced_statusbar_location : "bottom",
  36. theme_advanced_resizing : true,
  37.  
  38. // Example content CSS (should be your site CSS)
  39. content_css : "http://elearning.edukey.pl/css/learning.css",
  40.  
  41. // Drop lists for link/image/media/template dialogs
  42. template_external_list_url : "lists/template_list.js",
  43. external_link_list_url : "lists/link_list.js",
  44. external_image_list_url : "lists/image_list.js",
  45. media_external_list_url : "lists/media_list.js",
  46.  
  47. // Replace values for the template plugin
  48. template_replace_values : {
  49. username : "Some User",
  50. staffid : "991234"
  51. }
  52. });
  53. }
  54.  
  55. //Simple event handler for jQuery
  56. $(document).ready(
  57. function bind() {
  58. $('legend a.clicker').click(toggle_div);
  59. $('#type').change(ajax_check);
  60. loader();
  61.  
  62. }
  63. );
[JAVASCRIPT] pobierz, plaintext
nospor
No ale loader() wypdałoby odpalać po załadowaniu formularza a nie przed.... Weź poprawkę na to, że ajax jest asynchroniczny.
Czyli loader masz odpalić na końcu funkcji ajaxSuccess()
amii
nospor chodzi o to żeby odpalać loader() w ajaxSuccess tak jak pod sspodem ? Jeśli tak to próbowałem i nie działa. loader() jest odpalany w document.ready po to żeby załadować tinymce normalnie

function ajaxSuccess(data){
//..kod
loader();
}

Może komuś się przyda rowzwiązanie. Ja korzystam z TinyMCE + jQuery w aplikacji na Zend Framework

1. TinyMCE globalnie uaktywniamy nie dla wszystkich textarea tylko dla tych z określoną klasą /id w ten sposób: $('textarea#description').tinymce({ //kod });
2. W pliku na serwerze, którego wywołujemy ajaxem zmienamy id dla textarea na zendzie robię to tak:
  1. $form = new Application_Form_Addexercise();
  2. $form->getElement('description')->setAttrib('id', 'description_ajax');

3. W funkcji obsługującej dane zwrócone z serwera wywołujemy na samym końcu kiedy formularz będzie już dodoany do DOM ponownie : $('textarea#description_ajax').tinymce({ //kod }); i cieszymy się TinyMCE hulającym na ajaxie smile.gif

nospor daje zasłużonego plusa bo twoja odpowiedź naprowadziła mnie na to rozwiązanie
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.