#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()
. Что теперь будет?