2011-12-04 65 views
0

嘿傢伙我有一個上傳表單的問題,我做了。它適用於Firefox和IE,但它不適用於Safari和Chrome,所以我認爲這是一個Webkit問題。 首先我運行php窗體並將目標更改爲iframe。然後,一旦它完成上傳,我得到PHP回聲一個真正/假的聲明回到IFRAME。 我遇到的問題是PHP沒有將聲明回顯到iframe中。 這裏的代碼我有:在PHPPHP不會迴應到Webkit中的Iframe

//do all the appropriate checks etc and if it's uploaded do the following 

    if ($success == true) 
    { 
     echo '<div id="result">success</div>'; 
    } else { 
     echo '<div id="result">error</div>'; 
    } 

然後在我的javascript我做一些檢查,看看錶格填寫等,然後如果一切順利我打電話提交()第一,然後我叫iframeCheck()

function submit() 
{ 

    //change the target of the upload form to upload to the iframe. 
    $('#contactForm').attr('target','uploadIframe'); 
    //submit the iframe 
    $('#contactForm').submit(); 
    //fade in the sending message 
    $('#sendingMessage').fadeIn(200); 

} 

function iframeCheck() 
{ 
    //get the contents of iframe 
    var elem = $('#uploadIframe').contents().find('div#result'); 
    var result = elem.html(); 
    //if there's nothing in it, upload hasn't finished... 
    if (elem.length <= 0) 
    { 
     //check it again in 2" 
     clearTimeout(timer); 
     var timer = setTimeout(iframeCheck, 2000); 
    } else if (result =='success'){ 
     //if it contains a success message, display the success message 
     $('#sendingMessage').fadeOut(200); 
     $('#successMessage').fadeIn(500); 
     inputButton.removeAttr('disabled'); 
    } else { 
     if (result == 'error') 
     { 
      //otherwise display the error message 
      $('#sendingMessage').fadeOut(200); 
      $('#failureMessage').fadeIn(500); 
      inputButton.removeAttr('disabled'); 
     } 
    } 
} 

它工作正常,在FF和IE,但正如我所說的Chrome和Safari不會呼應到iframe中。 感謝您的幫助!

+0

嘿男人,PHP是服務器端,所以它應該不管你使用什麼瀏覽器。問題我你的客戶端腳本。 – Rooster

+0

如果該演示的作品,那麼它不是瀏覽器問題:http://api.jquery.com/contents/ –

+0

爲什麼不使用$ .post()$ .get()?在這種情況下? –

回答

0

非常感謝你們的幫助。約翰這是我的JavaScript的問題。點擊後我立即禁用了發送按鈕。這工作得很好,除了webkit不喜歡它,所以我不得不做的是添加onsubmit =「document.getElementById('submitButton')。disabled = true;」現在工作正常。 乾杯

0

iFrame網址與一般主頁相同嗎?也許它有一些與跨域策略相關的問題。

+0

我只是把src屬性留空,因爲我只想讓iframe的內容成爲div中的回覆。改變這個網址會幫助你想嗎? – Matt

+0

我真的不知道這是否有幫助。當我讀到你的問題時,我所寫的內容才浮現在腦海裏。 – djot