如何在replaceWith()中使用.load的结果

时间:2012-02-07 15:21:57

标签: php jquery

这是使用php和jquery的服务器状态页面。该页面可以描述为具有空单元格的appservers和webservers表,其中状态将显示在按钮单击上。单击该按钮时,将异步触发servercheck.php脚本的许多实例(使用jquery而不是同步PHP的原因),并根据td元素的id将结果返回到表中的正确单元格

除了背景信息之外,所有这些都是无关紧要的。

因此,当页面首次加载时,像这样的单元格正在等待填充:

    <td id="a101-w01">&nbsp</td>

所以我有一个工作的.load(),其中的例子是:

$("#a101-w01").load(\"singleServerCheck.php?&appserver=appservera&webserver=webserver1");

会返回类似的内容:

<td id="a101-w01" class="up">Server UP</td>

我不能使用(&#34;#a101-w01&#34;)。load()因为它只替换了元素的内容,而不是元素本身(因此创建了一个单元格)在已经存在的单元格内部)

我想要的是这个

<td id="a101-w01">&nbsp</td>

将被替换为

<td id="a101-w01" class="green">SERVER UP</td>

Urgh有点难以解释:)无论如何我尝试过这样的事情:

$("#a101-w01").replaceWith().load(\"singleServerCheck.php?&appserver=appservera&webserver=webserver1");

$("#a101-w01").replaceWith(.load(\"singleServerCheck.php?&appserver=appservera&webserver=webserver1"));

但他们不对...有人可以帮助这个n00b将两个功能结合在一起吗? :)

4 个答案:

答案 0 :(得分:2)

描述

您可以使用jQuery.get()

执行此操作

示例

$.get("singleServerCheck.php?&appserver=appservera&webserver=webserver1", function(data) {
     $("#a101-w01").replaceWith(data);
});

更多信息

答案 1 :(得分:2)

替换td不正确。我看到你想要做的事情非常简单。尝试这样的事情。

从服务器端返回一个字符串"SERVER UP""SERVER DOWN"并使用该更改添加所需的文本和类

$.get("singleServerCheck.php?&appserver=appservera&webserver=webserver1", function(data){
     $('#a101-w01').html(data).addClass(data == "SERVER UP" ? "green" : "red");
});

答案 2 :(得分:0)

您可以在<td>中加载更多内容:

<td id="a101-w01"><div class="up">Server UP</div></td>

或者查看manual并使用回调函数。

答案 3 :(得分:0)

您将无法使用简写ajax函数.load()来执行此操作,因为它会将结果插入到元素中,而不会替换它。

而是使用.get()函数,它具有更长的语法,但可以完成确切的工作:

$.get('singleServerCheck.php',{appserver:'appservera',webserver:'webserver1'},function(data){
  $("#a101-w01").replaceWith(data)
})