mam problem z edytorem elrte, który w połączeniu z metodą ajax biblioteki jquery podwaja mi treść znajdującą się w edytorze. Kod wygląda następująco.
$('form input:submit').click(function() { var formData = $('form').serialize() + $('#editor').elrte('val'); $.ajax( { url: "<?= Route::url('admin', array('controller' => 'pages', 'action' => 'ajax_edit', 'id' => $page->id)) ?>", type: 'POST', cache: false, data: formData, dataType: 'json', success: function(data) { if(data['error']) { $('#ajax_info').addClass('validation').text(data['msg']).show(); } else { $('#ajax_info').addClass('success').text(data['msg']).show(); } } }); return false; });
Podwojoną treść otrzymuję tuż po przesłaniu do skryptu php, czyli framework nie robi mi tu żadnych psikusów tylko albo edytor, albo metoda ajax. Przy przesyłaniu danych bez ajaxa wszystko działa.
public function action_ajax_edit() { $id = $this->request->param('id'); $page = ORM::factory('page', $id); $validator = $page->validate($_POST); if($validator->check()) { /*$page->edit($validator); echo json_encode(array( 'msg' => 'Strona została edytowana.', 'error' => FALSE ));*/ } else { 'error' => TRUE )); } }
Dodam jeszcze, że podwaja mi treść tylko z pola textarea[name=content] o id editor.
Gdzie zrobiłem błąd? Będę wdzięczny za wszelkie wskazówki.
EDIT: zdaje mi się, że wiem gdzie problem. Zamiast $('form').serialize() + $('#editor').elrte('val') powinno być samo $('form').serialize()...
EDIT 2: albo jednak nie. Żeby zadziałało potrzebowałbym czegoś na kształt
Kod
var formData = $('form:not(textarea#editor)').serialize() + $('#editor').elrte('val');
ale kod nie działa.