Javascript 在php中加载页面后使用Ajax动态呈现表值
我的想法是在php页面上获取数据库中可用服务器的连接状态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
<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>