今天我需要一些帮助,我知道它并不难,并且在此站点的php中有很多帮助,但是我无法使用AJAX找到任何东西,该技术现在正在学习,我想掌握有一天。
我的代码如下。
$(".descarga").click(function(){
var paquete={idArchivo:$(this).val()};
$.post("includes/descargarPublicacion.php",paquete,procesarDatos);
});
因此,当来自“ descarga”类的按钮创建一个“数据包”时,我将其与post方法一起使用以将数据发送到名为descargarPublicacion.php的php文件中。
这是php文件的外观:
<?php
session_start();
$mysqli = new mysqli("localhost", "root", "", "registroflashback");
if (isset($_GET['idArchivo'])) {
header("Content-type: application/vnd.msword");
header("Cache-Control: must-revalidate,post-check=0, pre-check=0");
header("Content-disposition:attachment;filename=yeaboi.doc");
header("Expires: 0");
$idPubliGet=$_GET['idArchivo'];
$resultadoBusqueda=$mysqli->query("SELECT * FROM publicaciones WHERE idPubli='$idPubliGet'");
if ($resultadoBusqueda->num_rows>0) {
//$resultadoBusqueda['titulo'];
echo 'descarga exitosa';
}else{
echo 'descarga no exitosa';
}
}else{
echo 'descarga no exitosa';
}
?>
我进行了一些研究,人们告诉我使用头文件来转换文件并下载它,但是它对我有用,它不会生成任何文件,但是会执行我使用的“ escar descarga exitosa” js文件中以下函数的返回值。
function procesarDatos(datos_devueltos){
alert(datos_devueltos);
if(datos_devueltos=="descarga exitosa"){
$("#alertaDescarga").show(1000);
}
if(datos_devueltos!="descarga exitosa"){
$("#alertaDescargaError").show(1000);
}
}
我如何使用ajax和jquery从html生成.doc文件?我知道我几乎掌握了它,应该有一些细节,但是我不知道是哪一个,这就是为什么我要寻求一些有经验的帮助!谢谢!
答案 0 :(得分:1)
我不明白您为什么要通过ajax提供.doc文件。我认为,仅在常规GET请求上提供有效的.doc会更容易。
$(".descarga").click(function(){
//onClick transfer id via Get-Param and download file
window.location = "includes/descargarPublicacion.php?idArchivo="+$(this).val();
});
php部分(descargarPublicacion.php)
<?php
if (isset($_GET['idArchivo'])) {
header("Content-type: application/vnd.msword");
header("Cache-Control: must-revalidate,post-check=0, pre-check=0");
header("Content-disposition:attachment;filename=yeaboi.doc");
header("Expires: 0");
//ID is available via GET because we send it as Url Param
$idPubliGet=$_GET['idArchivo'];
//@TODO fetch relevant data with given ID
//@TODO generate valid(!) doc File output
//- just echo'ing something will not result in an valid document for Word
echo $coumentContent;
}
?>
提供/生成有效的Word文档要复杂一些。我建议您研究一个可以为您完成所有工作的库。 例如。 https://github.com/PHPOffice/PHPWord
如果您只想提供一些简单的.txt
文件-将标头Content-Type
更改为text/plain
,将文件名更改为yeaboi.txt
,然后打印/回显文本,内容