我有一个PHP程序,它执行一系列密钥驱动的SSH连接(作为Apache用户www-data),并在远程服务器上执行脚本,检查一对服务/守护进程的状态。根据报告的状态“运行”或“已停止”,一个函数确定应在div表格单元格中显示的相应图像,绿色检查或红色“x”。
看起来像这样:
问题是轮询了9台服务器,动态构建了18个div表格单元。我想刷新/显示每个div,因为从每个SSH调用返回数据。
这是PHP代码,其中每个SSH调用都包含插入结果的div:
$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
答案 0 :(得分:2)
这是一个如何动态地向DOM元素添加内容的简单示例。您可以使用$ .ajax
var request = $.ajax({
type: "POST",
url: "example.php",
data: data_obj,
dataType: "html"
}).done(function(msg) {
$("#example_element").append(msg);
}
网址:将指向您的文件。
data:是可选的,但使用该选项将允许您传递要返回的密钥。
dataType:指定您期望的返回类型
在.done中,你可以做的最简单的事情是加载内容只是为了将它附加到某个东西(或替换,但在你的情况下你可能想要附加它)。请注意,此调用不会检查错误情况。
The documentation is pretty verbose but you should still read it if you plan on using AJAX calls.