2017-09-06 1 views
0

J'ai un bouton d'impression dans un modal bootstrap.Comment appeler window.print sur la page html renvoyée après un appel ajax

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

Je souhaite imprimer les données renvoyées.

Dans ma page d'impression

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

Dans mon contrôleur

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

Comment puis-je imprimer le contenu de ces pages après appel ajax?

+0

bien vous devez l'ajouter à la page pour l'imprimer. – epascarello

+0

@epascarello Comment puis-je retourner la page html dans un appel ajax? La fonction print() est déjà là. – Crazy

+0

pourquoi ne l'ouvrez-vous pas simplement dans une nouvelle fenêtre? Charger une page avec Ajax ne fait rien, c'est du texte brut. – epascarello

Répondre

0

Appeler et renvoyer return View::make('pages.print'); ne va pas aider car il crée uniquement l'instance de View classe. vous avez besoin chaîne HTML et que vous devez appeler render()

donc pour vous son contrôleur

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

il retournera HTML chaîne à la fonction Ajax

Dans votre appel 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); 
     } 
    }); 
}); 

il va ouvrir print window pour HTML retourné du contrôleur

Espérons que cela aidera!

+0

Bhai Bhai .. Jor !!! (y) –