php - 处理 Exec_Shell 脚本时显示加载图像

标签 php jquery html css ajax

我需要在加载 script.sh 时创建一个带有图像的加载器 div

这是我的代码:

<?php
    if (isset($_POST['restartserver']))
    {
         shell_exec("my-script.sh");         
    }    
?>

<html>
<body>
<div class="refresh">
<form method="post">
    <p>
        <button class="button" name="restartserver">Restart Server</button>
    </p>
</form>
</div>
</body>
</html>   

所以当我点击按钮时我需要一个加载图像,当加载 script.sh 时图像加载器消失,你可以再次点击 div 中的按钮。

实际上,当我点击按钮时,脚本运行正常,但我看到浏览器正在加载脚本,完成后它会重新加载同一页面。

我只想要加载脚本时的加载器 image.gif

我知道这可以用 Ajax 来完成,但我没有找到一个有效的例子

最佳答案

使用 jQuery 实现简单的 ajax。以下代码假定重启脚本在重启完成时输出“完成”,以及任何其他错误。

$('#loaderdiv').html('<img src="loader.gif" />');

$.get('http://path.to/restart.php', function(data){
    if (data == "complete"){
       $('#loaderdiv').html('Reboot Complete');
    } else {
       $('#loaderdiv').html('An Error Has Occured');
    }

});

HTML

<div id="container">
    <button id="runscript">Run Script</button>
</div>

Javascript

$(document).ready(function(){

  $('#runscript').click(function(e){
      e.preventDefault();

      $('#container').html('<img src="loader.gif" />');

      $.get('http://path.to/execute_sh_script.php', function(data){
            // Code here executes once ajax is complete
            $('#container').html('**strong text**');
      });

  });

});

关于php - 处理 Exec_Shell 脚本时显示加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33044591/

相关文章:

javascript - 对文档添加的元素进行点击检测

html - CSS 流体布局 : "stacked" div with different heights

php - 为什么将 session 数据存储在应用程序数据库中?

php在windows上包含路径

javascript - jQuery AJAX 没有错误或成功触发

html - Webfonts 在 Firefox Developer Edition 54.0a2 中不起作用

javascript - 如何更改电子邮件的 html5 模式错误消息

php - 如何将二维数组转换为一维数组?

php - ElasticSearch:关联分数被function_score覆盖

javascript - 复选框选择取消全选并执行功能