1

我有一个 PHP 程序,它执行一系列密钥驱动的 SSH 连接(作为 Apache 用户 www-data),并在远程服务器上执行脚本来检查几个服务/守护程序的状态。根据报告的状态“正在运行”或“已停止”,函数确定应在 div 表格单元格中显示的适当图像、绿色复选标记或红色“x”。

它看起来像这样:

服务状态屏幕截图

问题是轮询了 9 个服务器,并且动态构建了 18 个 div 表单元。当每个 SSH 调用返回数据时,我想刷新/显示每个 div。

这是每个 SSH 调用都插入包含结果的 div 的 PHP 代码:

           $cmd_string=buildServiceCallString($distIP, "VolCreationService","serviceCheck");

            echo "<div class=\"statTableRow\">";
        echo "<div class=\"statData statTableCell\">";
            $cmd_output=shell_exec($cmd_string);
            echo "<span class=\"serviceTitle\">VolCreationService: <img class=\"runStatImage\" src=\"".displayRunStatusImage($cmd_output)."\"></span>";
            $cmd_output="";
                   echo "</div>"; //end statTableCell
                   echo "</div>"; //end statTableRow

我已经努力理解 jQuery .load() 方法,但它还没有点击。我想这将涉及回调,但我不明白如何通过异步调用访问和显示元素。

任何意见是极大的赞赏!

-TU

4

1 回答 1

2

这是一个非常简单的例子,说明如何动态地向 DOM 元素添加内容。您可以使用 $.ajax

 var request = $.ajax({
      type: "POST",
      url: "example.php",
      data: data_obj,
      dataType: "html"
   }).done(function(msg) {
         $("#example_element").append(msg);
      }

url: 将指向您的文件。

data: 是可选的,但使用该选项将允许您传递要检索的密钥。

dataType:指定您期望的返回类型

在 .done 中,您可以做的加载内容的最简单的事情就是将其附加到某些东西(或替换,但在您的情况下您可能想要附加它)。

请注意,此调用不检查错误情况。

该文档非常冗长,但如果您打算使用 AJAX 调用,您仍然应该阅读它。

于 2013-08-08T23:50:19.717 回答