Как распечатать другую страницу с помощью кнопки с помощью ajax

#javascript #jquery #ajax

Вопрос:

Мне интересно, как распечатать другую страницу без необходимости переходить на определенную страницу, которую мне нужно распечатать с помощью кнопки.

У меня есть страница под названием Квитанции, на которой у меня уже есть кнопка печати. При нажатии на печать я хочу напечатать другую страницу под названием Print.php , которая там есть.

Вот мой код Ajax:

 // Update bill status and print  $(document).on('click', '.update_status', function(e){  e.preventDefault();  var ordernum=$(this).data("id");  $.ajax({   url:"pages/UpdateBillStatus.php",   method:"POST",   data:{ordernum:ordernum},  success:function(data){  document.getElementById('status' ordernum).innerHTML = data;   // This is the part that I wrote but it still open the Print.php page then print  var printWindow = window.open('http://localhost/LaLigaCafe/pages/Print.php?ordernum=' ordernum '');  printWindow.print();  }  });   });   

Итак, что мне нужно, так это распечатать страницу без необходимости идти туда, просто печатая на моей текущей странице.

Заранее спасибо, ребята.

Комментарии:

1. Afaik вы не можете распечатать страницу, не показав ее сначала. Единственное, что подходит близко, — это позвонить window.print() затем window.close() из документа после его загрузки; это загрузит документ и сразу же отобразит диалоговое окно печати, а затем закроет окно/вкладку сразу после того, как задание печати покинет браузер. (также обратите внимание, что ajax здесь совершенно неуместен)

2. Во-первых, спасибо за ваш комментарий. Я уже знал об этом, но когда я вывожу window.close() результат на печать, это пустая страница, я не знаю, в чем проблема, когда я помещаю window.close() . Что касается вашей заметки; это ajax для обновления статуса счета до «оплачено», поэтому после обновления статуса счета: Распечатайте счет.

3. Да, я понимаю, в чем смысл вызова ajax, но это не связано с проблемой печати, о которой вы спрашиваете. В любом случае, все , что вам нужно сделать, это добавить lt;scriptgt;window.print(); window.close();lt;/scriptgt; в конец print.php , а затем просто вызвать команду window.open (), чтобы загрузить ее.

4. Да. ты абсолютно прав, братан, но когда я добавляю lt;scriptgt;window.print(); window.close();lt;/scriptgt; его, открывай print.php и закрывай немедленно.

5. Странный. Прокомментируйте window.close() . Что теперь будет?