Javascript 如何使用AJAX和PHP生成.doc

Javascript 如何使用AJAX和PHP生成.doc,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,今天我需要一些帮助,我知道这并不难,在这个网站上用php做这件事有很多帮助,但是我在AJAX上找不到任何帮助,我现在正在学习这项技术,我希望有一天能掌握它 我的代码如下 $(".descarga").click(function(){ var paquete={idArchivo:$(this).val()}; $.post("includes/descargarPublicacion.php",paquete,procesarDatos); }); 因此,当一个来自“desc

今天我需要一些帮助,我知道这并不难,在这个网站上用php做这件事有很多帮助,但是我在AJAX上找不到任何帮助,我现在正在学习这项技术,我希望有一天能掌握它

我的代码如下

$(".descarga").click(function(){
    var paquete={idArchivo:$(this).val()};
    $.post("includes/descargarPublicacion.php",paquete,procesarDatos);
});
因此,当一个来自“descarga”类的buttom生成一个“packet”时,我使用post方法将数据发送到名为descargarPublication.php的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;       
}
?>
以下是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';
}
?>

如何使用ajax和jquery从html生成.doc文件?我知道我几乎拥有它,它应该是一些细节,但我不知道哪一个是,这就是为什么我要求一些有经验的帮助!谢谢大家!

我不明白您为什么希望通过ajax提供.doc文件。在我看来,只提供有效的.doc比正常的GET请求更容易

$(".descarga").click(function(){
    //onClick transfer id via Get-Param and download file
    window.location = "includes/descargarPublicacion.php?idArchivo="+$(this).val();
});
php部分(descargarPublication.php)


是的,我知道有一种更简单的方法,但我开始使用ajax,我想在任何情况下都尝试使用它,在这种情况下,我想做的是,当我单击一个附在div上的按钮(其中包含文件的信息)时,下载它而无需从站点移动或修改url。此外,当我按下它时,它会弹出一个窗口,显示请求的结果,无论成功与否。我想你更了解它。顺便说一句,对于这个库,我明天会尝试一下:))只是为了获取更多信息-使用ajax下载文件并不那么容易,因为javascript无法将文件保存到本地计算机。但是请注意这篇博客文章——我还没有尝试过,但是演示看起来不错,也许它适合你
<?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;       
}
?>