Javascript 在php中加载页面后使用Ajax动态呈现表值

Javascript 在php中加载页面后使用Ajax动态呈现表值,javascript,php,jquery,ajax,dynamic-tables,Javascript,Php,Jquery,Ajax,Dynamic Tables,我的想法是在php页面上获取数据库中可用服务器的连接状态 <tbody> <?php foreach ($data['servers'] as $server) { ?> <tr> <td class=""><?php echo $server->server_name; ?></td> <td class=""><?php echo $ser

我的想法是在php页面上获取数据库中可用服务器的连接状态

  <tbody>
  <?php foreach ($data['servers'] as $server) { ?>
     <tr>
          <td class=""><?php echo $server->server_name; ?></td>
          <td class=""><?php echo $server->base_path; ?></td>
          <td class="server_status"><?php if (is_dir($server->base_path)){ echo 'Pass';} else { echo 'Fail' } ?></td>
    </tr>
  <?php  } ?>
  </tbody>
获取服务器状态功能:

    public function getStatus() {

    $basep = $this->_serverModel->getBasePath(2);
    if (is_dir($basep)) { 
        echo 'Pass'; exit;
    } 
    else { 
        echo 'Fail'; exit;
    }
}
提前谢谢

像这样试试看

$(document).ready(function(){
    var hTable = document.getElementById('table2');
        var iRowCount = hTable.rows.length;

    for(var i=1; i<iRowCount; i++){
        basepath= hTable.rows[i].cells[2].childNodes[1].value;      
        $.ajax({
           url: 'get-server-status',
           data :basepath 
        })
    .error(function(){
        alert('Error!');
    })
    .done(function(response){
        hTable.rows[i].cells[2].childNodes[3].value=response;
    });

    }
}
首先将id添加到您的

然后选中link以在页面加载时处理ajax,选中link以在单击时处理ajax


在link中,您可以将status替换为server_status_loading

您需要提供一种方法来标识您正在用PHP测试哪个服务器的状态。可能是服务器名或其基本路径。您可以使用$.ajax的data属性将此信息发送到PHP脚本。您应该在ajax中传递每个元素的数据库id,然后可以添加响应。@Rorymcrossan-在这种情况下,如何将serverID发送到data属性?我们不能使用相同的类名来呈现响应。如何处理回应@NiranjanNRajugive id to tr,让id成为数据库您正在处理的ajax本质上是异步的。你不知道哪种反应会先出现。所以for循环将不起作用。请重新考虑一下。然后,您必须使用$server变量或ajax调用中的async:false来检索状态
    public function getStatus() {

    $basep = $this->_serverModel->getBasePath(2);
    if (is_dir($basep)) { 
        echo 'Pass'; exit;
    } 
    else { 
        echo 'Fail'; exit;
    }
}
$(document).ready(function(){
    var hTable = document.getElementById('table2');
        var iRowCount = hTable.rows.length;

    for(var i=1; i<iRowCount; i++){
        basepath= hTable.rows[i].cells[2].childNodes[1].value;      
        $.ajax({
           url: 'get-server-status',
           data :basepath 
        })
    .error(function(){
        alert('Error!');
    })
    .done(function(response){
        hTable.rows[i].cells[2].childNodes[3].value=response;
    });

    }
}
<?php foreach ($data['servers'] as $server) { ?>
 <tr id="echo database id here.">
      <td class=""><?php echo $server->server_name; ?></td>
      <td class=""><?php echo $server->base_path; ?></td>
      <td class="server_status"></td>
      <td class="server_status_loading"></td>
</tr>