我一直在谷歌上搜索一段时间,试图找到一种简单的方法来使AJAX工作。我找到了一些东西,但到目前为止我还没有幸运能让他们上班。 我想从一个名为'serverstatus.php'的PHP文件中获取一个字符串。 该字符串当前在serverstatus页面上输出如下: “在线:0:20离线” 说明: 有两个服务器,第一个在线有20个客户端中的0个。 第二个是离线。
我想要它做的是通过AJAX加载这些值,然后用“”拆分它们然后用“:”分割我得到的每个值。 这应该给我我想要的每一件事。
我必须获取字符串的代码是:
<head>
<script>
var someVar;
$.ajax({url: $_SERVER['DOCUMENT_ROOT'].'/inc/int/serverstatus.php', success: function(ajaxResponse) {
someVar = ajaxResponse;
document.write(someVar);
}});
</script>
</head>
注意:我希望在页面开始加载时立即调用代码。
编辑: 我认为问题在于它没有从状态页面获取任何值。 此外,状态页面上的值是从MySQL服务器加载的,因此显示大约需要1-3秒。
答案 0 :(得分:1)
“然后将它们拆分为”“然后将我得到的每个值拆分为”:“
那么问题是什么?完全实现您描述的内容很简单:
var tmp = ajaxResponse.split(" ")[0].split(":");
var currentClients = tmp[1];
var maxClients = tmp[2];
...虽然如果从服务器返回的字符串格式错误,您显然会遇到问题,因此您可能需要单独执行.split()
操作。
或者您可以使用正则表达式而不是.split()
:
var currentClients,
maxClients,
matches = ajaxResponse.match(/(\d+):(\d+)/);
if (matches){
currentClients = matches[1];
maxClients = matches[2];
} else {
// response was in the wrong format, so do something else
}
答案 1 :(得分:1)
一旦页面加载并拆分字符串,这将立即运行。然后将数据放入具有ID的div - response_container
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
var someVar;
$.ajax({
url: 'serverstatus.php',
success: function(ajaxResponse) {
var data = ajaxResponse.split(" ")[0].split(":");
currentClients = data[1];
maxClients = data[2];
$("#response_container").append('Clients: ' + currentClients + ', Max: ' + maxClients);
}
});
});
</script>
</head>
<body>
<div id="response_container"></div>
</body>
</html>
答案 2 :(得分:1)
这应该有效:
var someVar;
$.ajax({url: $_SERVER['DOCUMENT_ROOT'].'/inc/int/serverstatus.php', success:
function(ajaxResponse)
{
var array = ajaxResponse.split(" ");
for(var i in array)
{
var subArray = array[i].split(":");
if(array[i] === "Offline")
document.body.innerHTML += "Server "+i+" is offline.<br/>";
else
{
document.body.innerHTML += "Server "+i+" has "+subArray[1]+" out of "+subArray[2]+" clients online.<br/>";
}
}
}
});
答案 3 :(得分:0)
var str="Online:0:20 Offline";
var n=str.split(":");
n将是您的值的数组。
see more about the split function here
编辑:我想我想念解释什么可能出错,你能否更新你的输入字符串以及你想要的输出