2013-03-16 144 views
0

这是我的jQuery: $(文件)。就绪(函数(){VAR instrID; VAR猫;显示PDF BLOB

$(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')); 
} 
?> 

这是我的div displayPDF它是空的:

<div id="displayPDF"> 

</div> 

的jQuer y和div在同一个php文件中。我想要在点击事件发生的同一页面显示PDF。除了获得pdf之外,一切都在运作。当pdf回传给div时,它只是作为一堆字符回来。我想要显示的pdf小于1 MB。任何想法将不胜感激。

回答

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>'); 

,然后在你的PHP使用$_GET而不是职位。

+0

both:$ instrumentID = $ _POST ['InstrumentID']; $ category = $ _POST ['catView'];应该是$ instrumentID = $ _GET ['InstrumentID']; $ category = $ _GET ['catView']; – user908759 2013-03-16 21:44:03

+0

@ user908759是的,这个改变是从一个ajax post请求到一个嵌入对象的获取请求。 – Musa 2013-03-16 22:18:51

+0

我改变了帖子得到,仍然没有运气。有没有另一种方法来显示使用PHP,MySQL和jQuery的pdf blob?我一直在寻找像疯了一样,我没有找到太多的帮助。不过谢谢你。 – user908759 2013-03-17 04:39:16

0

我不认为你可以以这种方式内联显示PDF。尝试切换到一个iframe - 这应该工作。这是设置您的ajax.php iframe的位置。

+0

我猜iframe会在我的div。你有一个例子吗? – user908759 2013-03-16 21:48:30

+0

不,我不使用iframe。谷歌应该有很多例子。 – fredrik 2013-03-17 07:18:44