0

これは私のjQueryです:$(document).ready(function(){var instrID; var cat;

    $(window).load(function(){

    });

            $.post('ajax.php', {InstrumentID: instrID, catView: "pdf"}, function(data){

            $('#displayPDF').append("<php> header('Content-type: application/pdf') </php>");
            $('#displayPDF').append("<php> echo("+ data +") </php>");
        });

これは私のajaxまたはajax.phpです:

<?php

include '../include/xxxxx.php';

$instrumentID = $_POST['InstrumentID'];
$category = $_POST['catView'];


$sql = "SELECT * FROM `xxxxx` WHERE `InstrumentID` = '" . $_POST['InstrumentID'] . "'";


$results = mysql_query($sql);

    if($category == "pdf")
{
    header("Content-type: application/pdf");
    echo (mysql_result($results, 0, 'Instrument'));
}
?>

これは私のdivdisplayPDFですそれは空です:

<div id="displayPDF">

</div>

jQueryとdivは同じphpファイルにあります。クリックイベントが発生したのと同じページにPDFを表示したいと思います。PDFを取得することを除いて、すべてが機能しています。PDFがdivにエコーされると、文字の束として戻ってきます。私が表示しようとしているPDFは1MB未満です。任意のアイデアをいただければ幸いです。

4

3 に答える 3

3

たぶんこれは特定の質問への答えではありませんが、この質問は最初のグーグル検索で出てくるので、それがデータであるときにpdfをダウンロードするための私のアプローチを共有したいと思いblobます。

$.ajax({
  url: 'someurl',
  method: 'get',
  data: { param1: value1, param2: value2 },
  xhr: function() {
    const xhr = new XMLHttpRequest();
    xhr.responseType= 'blob'
    return xhr;
  },
  success: function (blob) {
    const link=document.createElement('a');
    link.href=window.URL.createObjectURL(blob);
    link.download="my-pdf-file-name";
    link.click();
  }
});
于 2020-05-28T09:33:36.503 に答える
2

の値を設定していませinstrIDん。また、入力をサニタイズしていません。

とにかく、ajaxを使用する代わりに、PDFをページに埋め込むことができます

var source = 'ajax.php?InstrumentID='+encodeUriComponent(instrID)+'&catView=pdf';
$('#displayPDF').append('<object data="'+source+'" type="application/pdf">'+
                        '<embed src="'+source+'" type="application/pdf"/></object>');

次に$_GET、phpでpostの代わりに使用します。

于 2013-03-16T20:01:18.407 に答える
0

この方法でPDFをインラインで表示することはできないと思います。iframeに切り替えてみてください-それはうまくいくはずです。これで、iframeの場所がajax.phpに設定されます。

于 2013-03-16T19:00:39.447 に答える