我正在设置一个小网站,用来计算进入房间的人数。如果有人进入房间,经理将单击“ +”按钮,将值加1。也可以使用“-”按钮。我已经使用JQuery完成了此操作,但它仅对网站上有1位活跃用户有效。我想知道如何同时针对多个用户进行调整,如果至少可能的话...所有用户应该可以实时访问该数字,也许PHP可以解决此问题?
$(document).ready(function(){
var compteur = 0;
const min = 0;
const max = 1200;
$("#resultat").attr('value', compteur);
$('#increase').click(function(){
if(compteur < max){
++compteur;
$("#resultat").attr('value', compteur);
}
if(compteur > max){
alert("Nombre maximum de personnes atteint !");
}
});
$('#decrease').click(function(){
if(compteur > 0){
--compteur;
$("#resultat").attr('value', compteur);
}
if(compteur < min){
alert('Impossible de descendre en dessous de 0 personne');
}
});
});
答案 0 :(得分:0)
是的,您确实需要服务器端语言(PHP或您喜欢的任何语言)以及javascript代码段。为此,您需要将活动用户的数量存储在服务器上的某个位置。也许是数据库,或者如果只是要统计用户数,则可以将其存储在文件中(这将要求您实施锁定文件,以便没有两个用户读取相同的值并进行更改)。
在PHP中,您将执行以下操作:
更新的代码,以防止数据争用。
创建一个文件counter.php;将其放在您的html文件旁边。代码将如下所示:
<?php
// counter.php
// Increment
if (isset($_POST['increment']))
{
// Increment in your database
// UPDATE online_users SET users = users + 1
}
// Decrement
else if (isset($_POST['decrement']))
{
// Decrement in your database
// UPDATE online_users SET users = users - 1
}
else if (isset($_GET['onlineusers']))
{
// Read from your database and output
// SELECT users FROM online_users
}
?>
然后在您的jQuery代码中,您可以简单地对此文件发出POST请求,以增加或减少文件中的用户数。
增量:
jQuery.post("counter.php?increment");
减量:
jQuery.post("counter.php?decrement");
要获取当前活动的用户:
jQuery.get("counter.php?onlineusers", function(numusers) {
compteur = numusers;
$("#resultat").attr('value', compteur);
});
注意:在递增或递减之前,请确保还检查counter.php文件中的MAX和MIN用户条件!我没有这么做:P
答案 1 :(得分:0)
由于该项目包括实时交互,因此您可能对escaped(asASCII:)
感兴趣,该语言易于使用,并且包含客户端库(在您的情况下要在浏览器中使用)和服务器库(可以在以下情况下使用) Node.js,但也有其他语言的非官方实现,例如Python);
或者,如果您想要更轻巧的东西,则可以使用WebSockets(在socket.io中也可以使用它作为传输工具),在这种情况下,您可以引用init(_:radix:uppercase:)
-在这种情况下,服务器可以用多种语言编写,这些语言具有WebSockets服务器的库(例如,Node.js的socket.io)。您提到了PHP,尽管那样做可能会更困难,但在这种情况下这也是可行的解决方案。如果仍然决定使用PHP进行操作,则可以在客户端使用我上面提到的JS WebSocket,在PHP服务器中使用WebSocket docs。