我正在尝试创建一个“打印”按钮来打开一个新窗口并在其中显示一个PHP变量。
下面的代码通过PHP脚本循环多次,就像有票据一样,但是当窗口打开时,我似乎无法显示正确的数字(打印链接中显示的数字是正确的 - 但是当新窗口打开时,它是不正确的)。
<script type='text/javascript'>
jQuery(function($) {
$('a.new-window').click(function(){
var recipe = window.open('','PrintWindow','width=600,height=600');
var html = '<html><head><title>Print Your Ticket</title></head><body><div id="myprintticket">' + $('<div />').append($('#ticket').clone()).html() + '</div></body></html>';
recipe.document.open();
recipe.document.write(html);
recipe.document.close();
return false;
});
});
</script>
<a href="" class="new-window">Print <?php echo $EM_Booking->get_spaces() ?></a>
<div style="display:none;">
<div id="ticket"><?php echo $EM_Booking->get_spaces() ?>
</div>
</div>
答案 0 :(得分:1)
为什么不尝试这样的事情:
<a href="#" class="new-window">Print <?php echo $EM_Booking->get_spaces() ?>
<div class="ticket" style="display:none">
<?php echo $EM_Booking->get_spaces() ?>
</div>
</a>
<script>
jQuery(function ($) {
$('a.new-window').click(function () {
var btn = $(this),
ticket = btn.find('.ticket').html(),
recipe = window.open('','PrintWindow','width=600,height=600'),
html = '<html><head><title>Print Your Ticket</title></head><body><div id="myprintticket">' + ticket + '</div></body></html>';
recipe.document.open();
recipe.document.write(html);
recipe.document.close();
return false;
});
});
</script>
但更好的解决方案是给一个按钮一个唯一的ID,然后点击从服务器传递该ID的现有(php生成的)页面,例如, /getBooking.php?id=123
,该页面将输出所需内容。