从 AJAX 获取字符串

Getting string from AJAX

本文关键字:字符串 获取 AJAX      更新时间:2023-09-26

我已经在谷歌上搜索了一段时间,试图找到一种简单的方法来使AJAX工作。我已经发现了一些东西,但到目前为止,我还没有幸运地让它们工作。我想从一个名为"serverstatus.php"的PHP文件中获取一个字符串。该字符串当前在服务器状态页面上输出,如下所示:"在线: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 秒。

这将在

页面加载并拆分字符串后立即运行。然后,数据将以 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>

"然后用" "拆分它们,然后拆分我通过":"得到的每个值

那么问题出在哪里呢?完全实现您所描述的内容很简单:

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
}

这应该有效:

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/

var str="Online:0:20 Offline";
var n=str.split(":");

n 将是你的值的数组。

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

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