2014-02-21 59 views
0

我有一個包含一個單一輸入的表單。當點擊「提交」時,是否有任何方法檢查文本文件是否與輸入字段中輸入的名稱相同?因此,如果您點擊「提交」,它應該檢查您輸入的文本是否與特定目錄中的文件匹配,結尾爲「.txt」。如果存在,應該有警報,如果沒有,表格應該進一步處理。html表單onclick檢查文件是否存在

編輯: ,因爲它似乎是相當難回答幾個細節: 有看起來像這樣一種形式:

<form action="<?php echo 'create-page.php' ?>" method="post"> 
<input type="text" name="newpage" value="" /><br> 
<input type="submit" name="submit" value="Save"> 
</form> 

如果依序按「提交」,腳本應該檢查一下.dir/example /中的.txt文件與您剛輸入的名稱存在 如果是,則應該有「找到文件」警報,如果沒有,應提交表單文件。 希望這個現在更清晰了...... 我認爲像php函數應該被解僱。但是如何?

+0

問題太廣泛。縮小範圍。 –

+0

添加一個點擊監聽器來提交按鈕和內部處理函數使用ajax來檢查文件的存在。然後根據結果做你的東西.. –

+0

當然,有。但是你需要一些服務器端代碼,比如PHP,ASP,JSP等......你是否已經在使用任何服務器端代碼? – LcSalazar

回答

1

你的問題缺乏具體細節和代碼。所以我無法確切知道你想要什麼。這裏有三種方法,在檢查文件是否存在時應研究一些內容。

的JavaScript/XML功能:使用XML變量,這個方法是你會想嘗試,如果運行的本地主機。儘管如此,如果你仍然想使用這個方法來檢查一個文件的url是否存在,那麼可能會有一些痛苦,然後嘗試把它作爲一個函數。嘗試簡單但有效的方法。如果你正在使用XML文檔,或者有一些服務器端正在進行,你可能想嘗試這種方法。首先把這樣的東西放在你的Javascript中... function fileExists (samename.txt)之後,你需要使用http函數創建一個XML var。我建議用http:openhttp:send來驗證它。當然,對於任何var報表和send,您總是需要執行return報表。這麼多優秀的網站來研究這個。它所做的是基本上創建一個變量,它可以查看你的服務器並使用http :,在服務器中初步輸入一個url並查看它是否被找到,然後返回結果。簡單來說,這個方法允許代碼在服務器中鍵入文件的url,並告訴你它是否找到了任何結果。這需要在完成之前進行很多配置。 更多的幫助,你可以想怎麼設置此示例代碼... Click Here

Ajax和ASP:如果您在本地主機運行的代碼,或者更好,沒有主機可言,這方法可能會讓你更容易。通常使用,並且不是非常複雜的代碼,如果您還沒有爲其他代碼配置代碼,我會推薦使用此方法。基本上這是簡單的Javascript,它有它自己的功能,但你會更熟悉。下面是一個示例代碼,真的不需要太多爲它只需要把它到您當前的腳本....

<script type="text/javascript" 
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script> 
<script type="text/javascript"> 
     $(function() { 
      $('#clickMe').click(function() { 
       var url = $('#fileName').val(); 
       $.ajax({ 
        type: "HEAD", 
        url: samename.txt, 
        success: function (data) { 
         alert("found"); 
        }, 
        error: function (request, status) { 
         alert("not found"); 
        } 
       }); 
      }); 
     }); 
</script> 

一旦你有一個創建一個<div>對應於腳本。下面是一個例子...

<div> 
     FileName: <input type="text" id="fileName" /><input type="button" value="check" id="clickMe" /> 
    </div> 

所以只要確保你配置filename,你要檢查的文件。如果你想學習,不要複製,然後繼續閱讀,因爲我解釋了它的作用。如果你有這個文件,或者這個文件可以存儲在與上面的腳本相同的文件夾中,它會檢查它是否存在,然後使用簡單的alert函數告訴你他們是否發現任何東西。你應該知道這個div是你要求的onclick

PHP/MySQL是的,這也是一種可以檢查文件的URL的方法。這不是我提出它的主要原因,但它仍然是一種有效的可能性。這種方法無窮無盡。這裏有兩個來自PHP。一個如果它有一個URL的文件,一個,如果沒有。無論哪種方式,這兩個都使用了一個推薦的file_exists函數。

Url.php(基本上,如果你想從另一臺服務器來檢查)

<?php 
function fileExists($path){ 
    return (@fopen($path,"r")==true); 
} 
?> 

短,但複雜。這會創建一個變量($Path),並使用@fopen語句打開變量可以驗證的所有服務器上的所有文件($Path)並返回信息"r")==true);

Personal.php(服務器中的文件)

file_exists($path_from_root . '/somedir/file/') 

就是這樣。這是因爲file_exists如此冷靜自然,你的操作系統甚至會來這裏玩。這是不言自明的代碼,不需要太多解釋。

PHP/MySQL方法似乎是一個優點和缺點類型的代碼。有好東西出現,比如知道如果出現問題,有很多方法可以重做。不好的事情,但真的很麻煩。就像在這種情況下沒有onclick函數一樣,PHP並不總是安全的。

最後的想法:由於你想檢查你的html格式的文件,我強烈建議使用Ajax,這樣你就不會完全改變代碼。確保您決定使用上面的Ajax腳本,刪除div,並將其添加到您的表單或任何您希望它檢查文件的位置。另外,另外兩個也有提供的東西,但除非你改變你的問題,以確切地知道你想要什麼,每一個都只是建議。

+0

哇,很好的比較,謝謝! –

0

那麼,你必須以某種方式將信息提交給服務器端。你可以通過兩種方式來做到這一點:AJAX或簡單的表單提交。

我很抱歉,但我不這麼認爲,就是要編寫代碼爲你,而是要幫助你找到至少一個方向去。嘗試學習表單提交和AJAX。然後你將在PHP端獲得輸入值。在那裏您可以查找該文件,並按照您希望回到JavaScript的那一邊行事。

0

嘗試使用ajax ,.做這樣的事情,

<form id="myform" action="<?php echo 'create-page.php' ?>" method="post"> 
    <input type="text" name="newpage" value="" /><br> 
    <input type="button" name="submit" value="Save"> 
</form> 

腳本

$('body').on('click',"input[name='submit']",function(e){ 
    $.ajax({ 
     url:"filecheck.php", 
     data: $(#myform).serialize(), 
     success:function(data){ 
      if(data){ 
      alert("file matches"); 
      // submit your form or do whatever you want 
      }else{ 
      alert("file doesn't match"); 
      } 
     }, 
     error(error){ 
     } 
    }); 
});