Печать из sql
Есть база sql. Из неё делается выборка данных которые вставляются в шаблон и выводится окно печати. Это делается методом post. Хочу делать без перезагрузки страницы. Т.е допустим на странице форма для ввода значения и кнопка. Пользователь вводит нужные данные, нажимает кнопку и получает окно печати после которой остаётся на той же странице. Как это осуществить?
|
Если в новой вкладке, то достаточно
<form action="url" method="post" target="_blank"> .... </form> Сервер отдает страницу для печати, в которой производится и запуск печати. |
Нет. В том же окне. Без перезагрузки страницы
|
Цитата:
|
Но как то же это делают. Пустая страница с одной кнопкой при нажатии на которую появляется окно с выбором принтера и текстом для печати
|
Цитата:
|
да в том то и суть что не совсем окно. вот нажмите ctrl+p. появилось "окно" с содержимым страницы. вот мне надо такое же окно но информацией из шаблона без перегрузки страницы. не знаю как объяснить
|
у меня сейчас это работает так
$tpl = new template('./data','.tpl'); # создали объект, задали каталог и расширение $tpl -> load('tpl'); # загрузили шаблон $tpl -> vars('tpl',array('time','date')); # указали какие переменные преобразовать, они должны быть заданы зарание echo $tpl -> out('tpl'); # вывели шаблон а я хочу сделать выборку данных аяксом и печать что бы страница не перезагружалась |
<form action="url" method="post" onsubmit="window.open('','myprt', 'width=600, height=400, left=0, top=0')" target="myprt"> Форма будет передана методом POST по указанному URL, скрипт которого вернет страницу для печати, которая будет помещена в новое окно. Если настройки браузера запрещают это делать, то только после разрешения такого действия. |
Parse error: syntax error, unexpected '','' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' in
вот такая ошибка |
Думаю локальный сервер есть? Выполните на нем файл .html файл. Файл .php, под которыми сохраните его, укажите в action формы.
.html файл: <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> <form action="" method="post" onsubmit="window.open('','myprt', 'width=600, height=400, left=0, top=0')" target="myprt"> <input name="as" value="Form data" /> <button>Send</button> </form> </body> </html> .php файл: <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <style> /* стили для печати*/ </style> </head> <body onload="this.print()"> <?=$_POST['as']?> </body> </html> И все будет работать. Это в чем-то вы косячите. |
как же объяснить? вы ctrl+p нажимали? появляется диалоговое окно и после печати или отмены исчезает и пользователь остается на той же странице. а в вашем примере появляется новое браузерное окно с диалоговым и после печати или отмены остается
|
Цитата:
|
Цитата:
|
Это работа браузера. А мне надо скриптом вызвать это нажатие и подгрузить в это окно шаблон
|
Цитата:
|
laimas,
Да вы были правы и я остановился на вашем способе. Теперь я переделал свой код и аяксом отправляю данные на сервер т.е пост запросом из HTML странички. Как мне теперь вызвать такое же окно с ответом сервера? |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 17:40. |