从AJAX获取字符串

时间:2013-09-17 21:09:14

标签: javascript php jquery ajax

我一直在谷歌上搜索一段时间,试图找到一种简单的方法来使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秒。

4 个答案:

答案 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/>";
        }
     }
}
});

http://jsfiddle.net/VusC8/

答案 3 :(得分:0)

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

n将是您的值的数组。

see more about the split function here

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