首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当文件存在于服务器上时,不显示按钮

问当文件存在于服务器上时,不显示按钮
EN

Stack Overflow用户
提问于 2017-08-29 22:08:22
回答 2查看 838关注 0票数 1

我正在尝试仅当web服务器上的特定文件被删除时才在HTML页面上显示下载按钮。我想我应该使用一个CSS display: none;,然后是一个带有while循环的PHP脚本,如下所示:

代码语言:javascript
复制
while (file_exists("/aaa/file.txt")) {
      sleep(5);
    }
//set display property of the invisibleLink class to block and continue

问题是,我不知道如何完成最后一步,并且我看到的关于用PHP修改CSS的每个线程都不适用于我的用例。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-29 22:22:26

PHP在屏幕上显示任何内容之前执行,所以您可能无法做到这一点:代码将简单地休眠5分钟,然后继续生成html的其余部分,然后显示给用户。

相反,您可能想要做的是将按钮标记为display: none,然后在页面加载完成后,让一个js函数调用一个php页面,该页面返回文件是否存在。让js函数循环,直到php页面显示文件消失,然后让js函数显示按钮并停止循环。

代码语言:javascript
复制
<button type="button" id="test_btn" style="display: none;">Download</button>

<script type="text/javascript">
    $(document).ready(function () {
        checkFile();

        function checkFile() {
            $.ajax({
                url: '/path/to/file_checker.php',
                type: 'GET',
                success: function (data) {
                    if (data === "deleted") { // or whatever you want the response to be
                        $('#test_btn').show();
                    }
                    else {
                        checkFile(); // you can add a setTimeout if you don't want this running too often
                    }
                }
            });
        }
    }
</script>

那么你的文件检查器php就可以和你的文件检查器php类似:

代码语言:javascript
复制
if (file_exists("/aaa/file.txt")) {
    echo "exists";
}
else {
    echo "deleted";
}
票数 1
EN

Stack Overflow用户

发布于 2017-08-29 22:11:42

只需构建按钮并使用如下所示的类隐藏它:

代码语言:javascript
复制
<style>
.hidden{ display:none;}
</style>

<?php
if(!file_exists("path") ){ $class = "hidden" }
  echo "<input type='button' class='$class' name='stuff'>woo</button>";
?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45941277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档