2010-11-09 117 views
0

我有一個小問題,我不知道原因。我設置isset觸發點擊問題(Php,jquery,iframe)

1-如果您單擊打印按鈕然後print.php頁面將自動打印。

2-如果您提交表格,那麼print.php頁面將自動打印。

問題在第二個選項。頁面打印自動完美,但如果我再次點擊打印按鈕,它不會再次打印頁面。

我正在使用firefox。

<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 

    <script type="text/javascript"> 
    function loadiFrame(src) 
    { 
     $("#iframeplaceholder").html("<iframe id='myiframe' name='myname' src='" + src + "' frameborder='0' vspace='0' hspace='0' marginwidth='0' marginheight='0' width='1' scrolling='no' height='1' />"); 
    } 

    $(function() 
    { 
     $("#printbutton").bind("click", 
      function() { 
       loadiFrame('print.php'); 
       $("#myiframe").load( 
        function() { 
         window.frames['myname'].focus(); 
         window.frames['myname'].print();  
        } 
       ); 
      } 
     ); 
    }); 
    </script> 

<? 
if (isset($_POST['formSubmit'])) 
{ 
echo "form submitted"; 
?> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#printbutton').trigger('click'); 
    }); 
</script> 
<? } ?> 
</head> 

<body> 
<table border="1"> 
    <tr> 
    <td><input type="button" id="printbutton" value=" Print " /><div id="iframeplaceholder"></div></td> 
    </tr> 
</table> 


<form action="auto.php" method="post"> 
<input name="formSubmit" type="submit" value="Submit" /> 
</form> 
</body> 

回答

0

這是一個在Firefox中的錯誤。如果您添加一個使每個iframe名稱都是唯一的計數器,它就會起作用。

0

只有當iframe不存在時,才應該調用loadiFrame函數。

$(function() 
{ 
    $("#printbutton").click( 
     function() { 
    if($('#myiframe').length==0){ 
      loadiFrame('print.php'); } 
      $("#myiframe").ready( 
       function() { 
        window.frames['myname'].focus(); 
        window.frames['myname'].print();  
       }); 
     }); 
}); 

立即嘗試。

祝你好運:)

+0

你好,這次在提交表單後根本沒有打印。打印機開啓,但不打印時熄滅。 – emre 2010-11-09 05:37:43

+0

我測試了代碼,它工作得很好!你有沒有改變.load()方法.ready()? – Mohammad 2010-11-09 08:51:49