2017-09-06 157 views
0

我在引導模式中有一個打印按鈕。如何在ajax調用後返回的html頁面調用window.print

$('#printST').click(function() { 
    $.ajax({ 
     type: 'GET', 
     url: 'print', 
     data: formData, 
     dataType: 'html', 
     success: function (html) { 
      // how to print the content of html? 
     }, 
     error: function (data) { 
      console.log('Error:', data); 
     } 
    }); 
}); 

我想打印返回的數據。

在我的打印頁

<script type="text/javascript"> 
window.onload = function() { window.print(); } 

在我的控制器

... 
    return View::make('pages.print'); 

我怎麼能打印AJAX調用後該網頁的內容?

+0

那麼你需要將它添加到頁面來打印它。 – epascarello

+0

@epascarello如何返回ajax調用中的html頁面? print()函數已經存在。 – Crazy

+0

爲什麼你不只是在新窗口中打開它?用Ajax加載頁面什麼也不做,它是純文本。 – epascarello

回答

0

呼叫和返回return View::make('pages.print');不會幫助,因爲它只會創建View類的實例。你需要HTML字符串,併爲您需要調用render()

這樣對你控制器

$view = View::make('pages.print'); 
return $view->render(); 

它將返回HTML字符串的Ajax功能

在你的Ajax調用

$('#printST').click(function() { 
    $.ajax({ 
     type: 'GET', 
     url: 'print', 
     data: formData, 
     dataType: 'html', 
     success: function (html) { 
      w = window.open(window.location.href,"_blank"); 
      w.document.open(); 
      w.document.write(html); 
      w.document.close(); 
      w.window.print(); 
     }, 
     error: function (data) { 
      console.log('Error:', data); 
     } 
    }); 
}); 

它會打開print window返回HTML從控制器

希望這會有所幫助!

+0

Bhai Bhai .. Jor !!!(#) –