Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试从Minecraft服务器刷新ping信息-可能还是不可能?_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 尝试从Minecraft服务器刷新ping信息-可能还是不可能?

Javascript 尝试从Minecraft服务器刷新ping信息-可能还是不可能?,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我正在制作一个(类似于)管理Minecraft服务器的仪表板。我目前正在尝试的是打印有多少玩家在线(在所有服务器上),并每3秒刷新一次值 什么有效-显示玩家总数-仅一次;刷新(使用jQuery)相应的div也可以工作(调试测试)。 什么不起作用-当刷新(使用jQuery)和打印PHP函数的值时,它不会刷新函数本身(只是反复打印相同的内容)。 注意:我没有从客户端和服务器控制台得到任何错误 代码如下: PHP-获取服务器上的玩家数量: function getPlayersTotal() {

我正在制作一个(类似于)管理Minecraft服务器的仪表板。我目前正在尝试的是打印有多少玩家在线(在所有服务器上),并每3秒刷新一次值

什么有效-显示玩家总数-仅一次;刷新(使用jQuery)相应的div也可以工作(调试测试)。 什么不起作用-当刷新(使用jQuery)和打印PHP函数的值时,它不会刷新函数本身(只是反复打印相同的内容)。 注意:我没有从客户端和服务器控制台得到任何错误

代码如下:

PHP-获取服务器上的玩家数量:

function getPlayersTotal() {
    $total = 0;

    foreach (getServers() as $serverInfo) {
        if (isOnline($serverInfo)) {
            $ping = json_decode(file_get_contents('http://api.minetools.eu/ping/' . $serverInfo), true);
            $total += intval($ping['players']['online']);
        }
    }

    return $total;
}
JS-刷新-位于头部

<script>
    $(document).ready(
        function() {
            setInterval(function() {
                var players = <?php print "" . getPlayersTotal() ?>;
                $('#playersPLZ').text(
                        "" + players);
            }, 3000);
        });
</script>

$(文件)。准备好了吗(
函数(){
setInterval(函数(){
var玩家=;
$('#playersPLZ')。文本(
“+玩家);
}, 3000);
});
有人能向我解释一下(1.)是否有可能以某种方式刷新PHP函数的值,以及(2.)如何做到这一点吗


问候。

这是Ajax的工作。现在的情况是:PHP代码将玩家数量直接输出到发送到浏览器的JavaScript中。如果玩家数量为50,则浏览器会看到以下内容:

<script>
    $(document).ready(
        function() {
            setInterval(function() {
                var players = 50;
                $('#playersPLZ').text(
                        "" + players);
            }, 3000);
        });
</script>
然后,您的JavaScript可以是这样的:

<script>
    $(document).ready(function() {
        setInterval(function() {
            $.get("num-players.php", function(players) {
                $("#playersPLZ").text(players);
            });
        }, 3000);
    });
</script>

$(文档).ready(函数(){
setInterval(函数(){
$.get(“num players.php”,函数(players){
$(“#playersPLZ”).text(播放器);
});
}, 3000);
});

这将每隔3秒向服务器发送一个请求,请求输入新号码。
num players.php
中的代码将返回该数字,当请求完成时,您的元素将用该数字更新。

您将客户端代码与服务器端代码(JS与php)混为一谈。您的目标是每3秒对服务器进行一次AJAX调用,您所做的是每3秒调用相同的值(请在浏览器中查看生成的HTML文件…),你可以找到更多信息。
<script>
    $(document).ready(function() {
        setInterval(function() {
            $.get("num-players.php", function(players) {
                $("#playersPLZ").text(players);
            });
        }, 3000);
    });
</script>