我正在从事柜台服务项目,我需要控制客户流量,每个客户可以在柜台上停留5分钟。另一方面,系统应控制5个计数器。
这是我解决问题的尝试。看看我的MWE:
//this is part of the code where I set the timer for each counter.
function increment() {
if (running == 1) {
setTimeout(function() {
time++;
var mins = Math.floor(time / 10 / 60);
var secs = Math.floor(time / 10);
var tenths = time % 10;
if (mins == 5) {
//after 5 mins is over the system should call php deQueue() method to dequeue the current and point out to next customer.
document.getElementById("message").innerHTML = "Currently, Counters are available... Next Customer..."
deQueue();
//this is my php method.
available();
}
document.getElementById("timer").innerHTML = mins + ":" + secs + ":" + tenths;
increment();
}, 100)
}
}
//And this is my php file.
<?php
public function deQueue(){
if (!$this->isEmpty()) {
$this->front = ($this->front+1) %5;
$this->size--;
}else{
echo "The Counter is empty! <br>";
}
}
?>
答案 0 :(得分:2)
现在,您需要像这样对您的php文件使用ajax请求:
function increment() {
if (running == 1) {
setTimeout(function() {
time++;
var mins = Math.floor(time / 10 / 60);
var secs = Math.floor(time / 10);
var tenths = time % 10;
if (mins == 5) ajaxDequeue(mins);
document.getElementById("timer").innerHTML = mins + ":" + secs + ":" + tenths;
increment();
}, 100)
}
}
function ajaxDequeue(mins){
$.ajax({
url: 'ajax.php?minutes=' + mins,
beforeSend: function()
{
document.getElementById("message").innerHTML = "Currently, Counters are available... Next Customer..."
},
success: function(response)
{
document.getElementById("message").innerHTML = response;
}
});
}
然后在您的ajax.php文件中将其设置为检查分钟数
<?php
$minutes = $_GET["minutes"];
if (isset($minutes)) deQueue();
public function deQueue(){
if (!$this->isEmpty()) {
$this->front = ($this->front+1) %5;
$this->size--;
}else{
echo "The Counter is empty! <br>";
}
}
?>
答案 1 :(得分:0)
在我看来,您似乎正在尝试直接从JavaScript调用PHP函数。为了用简单的语言来描述它,这两种语言通常需要一个额外的通讯层,称为HTTP,因为PHP在网络服务器上运行,而JavaScript在网络浏览器上运行。
要“在一定时间后”执行JavaScript函数,可以使用setTimeout。
要打开与PHP(网络服务器)的通信,可以使用AJAX。