Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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 通过ajax提醒网站上的用户_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 通过ajax提醒网站上的用户

Javascript 通过ajax提醒网站上的用户,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在尝试创建一个通知系统,当用户被分配到一个票证时,或者当一个新的票证被添加到数据库时,该系统会通知用户 我已经拥有的系统本身可以工作,只是它只向接收ajax请求的第一个用户发送通知。有没有办法让每一个应该收到通知的人都能收到通知 我的代码: javascript: function checkUpdates() { $.ajax({ type: "POST",

我正在尝试创建一个通知系统,当用户被分配到一个票证时,或者当一个新的票证被添加到数据库时,该系统会通知用户

我已经拥有的系统本身可以工作,只是它只向接收ajax请求的第一个用户发送通知。有没有办法让每一个应该收到通知的人都能收到通知

我的代码: javascript:

        function checkUpdates()
            {
                $.ajax({
                    type: "POST",
                    url: 'ajax/checkDB.php',   // a webservice or other URL that queries the database
                    data: {},
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(data) {
                        console.log('Connected and executed PHP page... '+data);
                        if (data.hasChanged == "true") {
                            playSound('img/notif2');
                            notifyAdmin();
                            console.log('Updated Tickets Page...');
                            $("#contents").load("dynamic/tickets.php");
                            $("#contents").fadeTo("fast", 1);
                        }

                        if (data.newAssigned == "true") {
                            playSound('img/notif2');
                            notifyUser();
                            console.log('Updated Tickets Page...');
                            $("#contents").load("dynamic/tickets.php");
                            $("#contents").fadeTo("fast", 1);
                        }
                    }
                 });
            }
        $(document).ready(function() {
            setInterval("checkUpdates()", 3000);  // Calls the function every 3 seconds
        });
我的php脚本(checkDB.php):

技术数据库:

UniqueID
Username
Password
Name
Level
Disabled
LastTimeSeen
needsNotify (Used in old system, plan to remove)

我真的被困在这里了。

您可以使用WebSocket或socket.io。
然后,多个客户端的js将与该套接字连接,并将通知所有已连接的人他们的票证

您可以将update语句更改为类似以下内容:

UPDATE tickets SET notify='1' WHERE notify='0' and Assigned = ''//some user id passed 

票的桌子结构是什么?请列出以下各列。。。。用户和通知。如果用户为空,则未分配该用户。查询应该是基于用户的。看起来您需要将SQL查询限制为当前user@charlietfl它们是基于用户的。用户永远不会等于null。当用户登录时,它们存储在php会话中,例如$_session['Name']-我正在检查我的tickets数据库中名为'Assigned'@Kisaragi的列,请稍等片刻,我将添加它。Hi Luan。最好使用评论框给出建议。你能深入解释一下这些东西是如何工作的吗?我以前从未使用过它们。Websocket就像一个隧道,在那里浏览器与服务器1通信,并保持打开状态,直到您关闭它。顺便说一句,这是非常安全的。(还有其他应用程序)它广泛用于创建聊天室,人们可以在聊天室中进行连接,当服务器意识到收到新消息时,将其发送给所有连接到该消息的人。有一个很好的插件是对的,当你之前提到它时,我看到了它是什么,我的问题是它是如何工作的,例如如何让socket.io具体解决我的问题。我不认为这会起作用,因为管理员没有分配给票证。我目前正在尝试确保将通知发送给所有管理员,这是在登录时在会话变量中设置的。我想我不明白您试图做什么/问什么。提交票证时,应向站点上的所有管理员发送通知
UniqueID
Username
Password
Name
Level
Disabled
LastTimeSeen
needsNotify (Used in old system, plan to remove)
UPDATE tickets SET notify='1' WHERE notify='0' and Assigned = ''//some user id passed