Hola, estoy tratando de cargar datos en la base de datos demandando una llamada ajax. Creé un script, pero el problema es que tenía un área de texto, pero por alguna razón CAMBIÉ ese área de texto a un div editable. Ahora mi pregunta es ¿cómo obtengo datos de eso? división
<form method="POST" action="" id="post" enctype="multipart/form-data" onsubmit="return false;"> <ul> <li> <i class="fa fa-photo"></i> Upload A Photo / Document <input type="file" name="image" /> </li> </ul> <div id='display'></div> <div id="contentbox" contenteditable="true" name="post_dt"> </div> <input type="submit" id="sb_art" class="btn_v2" value="Start Discussion" /> </form>Y este es mi script ajax creado para cargar datos.
$(document).ready(function(e) { $("#post").on('submit', (function(e) { $(document).ajaxStart(function(){ $("#load").css("display", "block"); }); $(document).ajaxComplete(function(){ $("#load").css("display", "none"); }); var form = this; var content = $("#contentbox").html(); $.ajax({ url : "url/demo/forums/post_forum", type : "POST", data : {new FormData(this), content: content}, contentType : false, cache : false, processData : false, success : function(data) { $("#data_update").prepend($(data).fadeIn('slow')); form.reset(); } }); })); });Está utilizando el método correcto para obtener el contenido del elemento editable: html() . Su problema es cómo está enviando los datos. Al enviar datos binarios a través de FormData , no puede colocarlos dentro de un objeto para codificarlos. En su lugar, los datos adicionales deben agregarse a FormData mediante append() . Prueba esto:
$("#post").on('submit', function(e) { $("#load").show(); var form = this; var formData = new FormData(this); formData.append('content', $("#contentbox").html()); $.ajax({ url: "http://tfsquare.com/demo/forums/post_forum", type: "POST", data: formData, contentType: false, cache: false, processData: false, success: function(data) { $("#data_update").prepend($(data).fadeIn('slow')); form.reset(); $("#contentbox").empty(); }, complete: function() { $("#load").hide(); } }); }); También tenga en cuenta que cambié su uso de ajaxStart() y ajaxComplete() para usar el método complete . Definir nuevos controladores AJAX globales en cada envío del formulario es bastante redundante.