2013-03-16 97 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