2014-02-17 10 views
0

我想代碼這個想法:你有一個下載按鈕。當你點擊按鈕時,它應該證明文件是否存在。當它存在時,它應該開始下載文件,如果沒有,那麼應該有一個警報。證明文件現有通過PHP和JavaScript

我知道如何來證明,如果通過PHP的文件存在:

if (file_exists(dirname(__FILE__).'/downloads/rawData.zip')) { 
    echo '<script type="text/javascript" language="Javascript"> 
    location="downloads/rawData.zip" 
    </script>' 
    ; 
} else { 
    echo '<script type="text/javascript" language="Javascript"> 
alert("Sorry, no file.") 
</script>'; 
} 

然而,問題是,按鈕是在HTML文件編碼和PHP不能處理應該不會加載了新的一頁點擊事件。

是否有解決方案,我可以如何解決問題?

+0

如何按鈕被硬編碼的文件名引用 –

+0

它實際上沒有被引用。我曾經參考過一個只加載文件的javascript函數。 – fjw

+0

那真正的問題是什麼。你點擊一個按鈕,然後點擊上面的腳本? –

回答

0

你需要的是像AJAX這樣的解決方案。一旦用戶點擊該按鈕,就向PHP腳本發出一個請求,然後返回一個值,根據該值可以執行下一步。

這裏是一個關於如何使用jquery庫來實現的例子。

$('#form').submit(function(event) { 
    event.preventDefault(); 
    $.ajax({ 
     type: 'POST', 
     url: 'file-exists.php', 
     data: $(this).serialize(), 
     dataType: 'json', // could be plain-text as well; depends on your use-case 
     success: function (data) { 
      console.log(data); 
      //do whatever you want based on this data 
     } 
    }); 
}); 

你也可以避免使用這個庫,但這會讓它更加複雜。你可以閱讀更多關於如何去做這個,在這裏:http://blog.mgechev.com/2011/07/21/ajax-jquery-beginners/

+0

謝謝!它對我來說是完美的! – fjw