type form example jquery ajax excel

form - Use jQuery para enviar datos de Excel usando AJAX



jquery post json (4)

AJAX es ... la elección incorrecta. Redirija al usuario a un recurso de servidor que enviará los datos con el tipo MIME adecuado y deje que el navegador descubra qué hacer con él.

Tengo la siguiente función que está extrayendo datos de una base de datos. La llamada ajax está funcionando correctamente. ¿Cómo puedo enviar los datos delimitados por tabuladores en mi función de éxito al usuario? Establecer el tipo de contexto a "application / vnd.ms-excel" no funcionó. La alerta de éxito muestra los datos formateados correctamente.

function SendToExcel() { $.ajax({ type: "GET", url: "/Search.aspx", contentType: "application/vnd.ms-excel", dataType: "text", data: "{id: ''" + "asdf" + "''}", success: function(data) { alert(data); }, error: function (jqXHR, textStatus, errorThrown) { alert(jqXHR.responseText); }}); }

No quiero mostrar los datos en el navegador; quiero enviarlos a Excel.

EDIT: encontré la manera de hacer lo que quería. En lugar de redirigir a los usuarios a una nueva página que les pedirá que guarden / abran un archivo de Excel, abrí la página dentro de un iframe oculto. De esta forma, los usuarios hacen clic en un botón y se les solicita que guarden / abran un archivo de Excel. Sin redirección de página. ¿Es Ajax? No, pero soluciona el problema real que tuve.

Esta es la función que estoy llamando al hacer clic en el botón:

function SendToExcel() { var dataString = ''type=excel'' + ''&Number='' + $(''#txtNumber'').val() + ''&Reference='' + $(''#txtReference'').val() $("#sltCTPick option").each(function (i) { dataString = dataString + ''&Columns='' + this.value; }); top.iExcelHelper.location.href = "/Reports/JobSearchResults.aspx?" + dataString;; }


Como usa JavaScript, AJAX está sujeto a las limitaciones diseñadas de JavaScript, que incluyen la interacción con otros procesos en la máquina del cliente. En este caso, es algo bueno; no le gustaría que un sitio cargue automáticamente un documento de Excel con una macro maliciosa.

Si desea mostrar los datos en el navegador, puede usar AJAX; de lo contrario, querrá simplemente dar un enlace a un documento de Excel y dejar que las capacidades normales de manejo de descargas del navegador descubran qué hacer.


Es posible que no quieras hacer esto con javascript.

Lo que creo que desea hacer es crear una página de respuesta con la aplicación / csv del tipo de mina y luego redirigir al usuario a esa página. Probablemente haga un window.open () ya que el usuario no pierde la página en la que se encuentra actualmente.


en HTML tengo un Formulario con elementos de entradas en serie y un botón que llama a una función de JavaScript onclick="exportExcel();

luego en el archivo JavaScript:

function exportExcel(){ var inputs = $("#myForm").serialize(); var url = ''/ajaxresponse.php?select=exportExcel&''+inputs; location.href = url; }

y finalmente un archivo de pivote que responde a algo

Código PHP:

case ''exportExcel'':{ ob_end_clean(); header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=exportFile.xls"); echo $html->List($bd->ResultSet($_GET)); }

$ html es un objeto que maneja html, y $ bd es un objeto que devuelve datos de la base de datos. Envíe su propia tabla html o lo que quiera.