0

我在谷歌上搜索了一段时间,试图找到一种让 AJAX 工作的简单方法。我发现了一些东西,但到目前为止,我还没有让它们工作的幸运。我想从名为“serverstatus.php”的 PHP 文件中获取一个字符串。该字符串当前在 serverstatus 页面上输出如下:“Online:0:20 Offline” 解释:有两台服务器,第一个在线,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 秒。

4

4 回答 4

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
}
于 2013-09-17T21:17:01.877 回答
1

这将在页面加载并拆分您的字符串后立即运行。然后将数据放入具有 ID - response_container 的 div

<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>
于 2013-09-17T21:19:26.790 回答
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/>";
        }
     }
}
});

http://jsfiddle.net/VusC8/

于 2013-09-17T21:36:20.063 回答
0
var str="Online:0:20 Offline";
var n=str.split(":");

n 将是您的值的数组。

在此处查看有关拆分功能的更多信息

编辑:我想我想念可能出了什么问题的解释,你能更新你的输入字符串和你想要的输出吗

于 2013-09-17T21:17:21.907 回答