使用ajax显示为随机字符串的PDF生成?

时间:2014-03-08 19:00:04

标签: javascript php jquery ajax pdf

对不起我的新秀,但那就是我。无论如何,我正在尝试制作一个像这样流动的代码:

  1. 用户从数据库进行查询
  2. 结果显示在模态窗口(使用jQuery UI)
  3. 可以选择在模态窗口中将其视为PDF
  4. Ajax将获取html并将其发送到pdfajax.php以使用TCPDF创建PDF
  5. Ajax将返回PDF结果
  6. 我尝试了它,但我可能在步骤3到5上遇到了磕磕绊。所有我肯定知道的是我可以通过Ajax传递我需要的HTML代码,如果我不尝试将其打印为PDF,但只是回应它作为PHP,它的工作原理。所以我似乎只被困在第5步。

    对于实验,我只是试图显示一个简单的PDF,说“嘿”,甚至没有传递变量(我现在已经注释掉了)。

    结果很难看: the result

    我想我在这里错过了一个函数的使用,它会在传递数据之前清理数据吗?但是这个功能是什么?或者它是否存在,这只是毫无意义的努力?

    这是HTML:

        <div class="dialog-form" title="Query Dialog">
            <br />
            <div id="query_result"></div>
            <br />
        </div>
    

    和jQuery

    $(".dialog-form").dialog({
        autoOpen: false,
        modal: true,
        draggable: true,
        resizable: true,
        width: 500,
        height: "auto",
        dialogClass: "no-close",
        buttons: {
            "PDF": function(){
                var html = $('#query_result').html();
    
                $.post('pdfajax.php',
                    {
                        html: $('#query_result').html()
                    },
                    function( data ){
                        $('#query_result').replaceWith( data );
                    }
                );
    
                //alert(html);
            },
            "Close": function() {
                $(this).dialog("close");
            }
        }
    });
    
    $(".minisubmit").click(function() {
        $( ".dialog-form" ).dialog( "open" );
    });
    

    PHP中的pdfajax.php

    <?php
    
    //$htmlp = $_POST['html'];
    
    //echo '<iframe id="query_result" srcdoc="',$htmlp,'" seamless="true"></iframe>';
    
    
    require_once 'tcpdf/tcpdf.php';
    
    $method = $_SERVER['REQUEST_METHOD'];
    
    if(strtolower($method) == 'post'){
    
    $pdf = new TCPDF();
    $pdf->AddPage();
    
    $html = <<<EOD
    Hey
    EOD;
    
    $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
    $pdf->Output('example_001.pdf', 'I');
    
    }
    
    ?>
    

    修改

    我试图在html中使用iframe,但它不起作用。单击PDF按钮后,现在没有任何操作。

    HTML实际上只是更新了。

    <div class="dialog-form" title="Query Dialog">
        <br />
        <div id="query_result"></div>
        <iframe src="pdfajax.php" id="report_result"></iframe>
        <br />
    </div>
    

    jQuery现在是:

        $(".dialog-form").dialog({
        autoOpen: false,
        modal: true,
        draggable: true,
        resizable: true,
        width: 500,
        height: "auto",
        dialogClass: "no-close",
        buttons: {
            "PDF": function(){
                var html = $('#query_result').html();
    
                $.post('pdfajax.php',
                    {
                        html: $('#query_result').html()
                    },
                    function( data ){
                        //$('#report_result').( data );
                        $('#report_result').prop('src', 'pdfajax.php');
                    }
                );
    
                //alert(html);
            },
            "Close": function() {
                $(this).dialog("close");
            }
        }
    });
    

    ajax文件没有变化。我需要提示如何继续?我根本不知道如何操纵iframe标签,互联网教程似乎没有帮助我理解。

0 个答案:

没有答案