0

新しいウィンドウを開いて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>
4

1 に答える 1

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 で生成された) ページを onclick で開くことです。たとえば/getBooking.php?id=123、そのページは必要なものをすべて出力します。

于 2013-03-26T12:56:19.627 に答える