Jquery - 打开一个包含当前页面内容的新窗口

时间:2013-03-26 12:44:36

标签: php jquery

我正在尝试创建一个“打印”按钮来打开一个新窗口并在其中显示一个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>

1 个答案:

答案 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,该页面将输出所需内容。