html表单onclick检查文件是否存在

时间:2014-02-21 15:48:00

标签: javascript php html ajax

我有一个包含一个输入的表单。有没有办法检查文本文件是否存在与输入字段中输入的名称相同,点击“提交”?因此,如果您单击“提交”,它应检查您键入的文本是否与某个目录中的文件匹配,结尾为“.txt”。如果存在,则应该有警报,否则,应该进一步处理该表单。

编辑: 由于似乎很难回答更多细节: 有一个表格如下:

<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函数的东西。但是如何?

3 个答案:

答案 0 :(得分:1)

您的问题缺乏具体细节和代码。所以我无法确切地说出你想要的是什么。以下是三种方法,在检查文件是否存在时应该研究的一些方法。

Javascript / XML函数:与XML变量一起使用时,如果运行localhost,此方法是 NOT 想要尝试的方法。尽管如此,如果你仍然想要使用这种方法来检查文件的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 是的,这也是一种可以查看文件网址的方法。这不是我提出它的主要原因,但它仍然是一个有效的可能性。这种方法无穷无尽。这里有两个来自PHP。一个如果它有一个文件的URL,一个如果它没有。无论哪种方式,这两个都使用推荐的file_exists函数。

Url.php (基本上,如果您想从其他服务器检查)

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

简短但复杂。这将创建一个变量($Path),并使用@fopen语句打开变量可以通过($Path)验证的所有服务器上的所有文件,并返回信息{{1 }}。

Personal.php (服务器内的文件)

"r")==true);

就是这样。这是因为file_exists如此平静,你的操作系统甚至可以在这里玩。这是不言自明的代码,不需要太多解释。

PHP / MySQL方法似乎是一个利弊类型代码。从中产生了很多好东西,比如知道如果出现问题,有很多方法可以重做它。然而,糟糕的事情真的很麻烦。就像在这种情况下没有onclick函数,并且PHP并不总是安全的。

最后的想法:由于您要检查html表单中的文件,我强烈建议您使用Ajax,这样您就不会完全改变代码。确保您决定使用上面的Ajax脚本,删除div,并将其file_exists( $path_from_root . '/somedir/file/' ) 组件添加到表单中,或者添加到您希望它检查文件的位置。此外,其他两个也有提供的东西,但除非你改变你的问题足以确切地知道你想要什么,所以这些只是建议。

答案 1 :(得分:0)

那么,你必须以某种方式将信息提交给服务器端。您可以通过两种方式执行此操作:AJAX或简单表单提交。

对不起,我不认为这是为你编写代码,而是帮助你找到至少一个方向去。尝试学习表单提交和AJAX。然后你将在PHP端获得输入值。在那里,你可以查找文件,并按照你希望的方式回到javascript端。

答案 2 :(得分: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){
       }
    });
});