Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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
使用jQuery的自动PHP通知_Php_Javascript_Jquery_Ajax - Fatal编程技术网

使用jQuery的自动PHP通知

使用jQuery的自动PHP通知,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我已经为我的网站购买了一个通知主题,我正在尝试从网站获取一些数据,以通知登录的人 AJAX/jQuery/Javascript: <script type="text/javascript"> var refreshId = setInterval(function(){ $.ajax({ type: "POST", url: "cron/notify.php", cache: false, success: f

我已经为我的网站购买了一个通知主题,我正在尝试从网站获取一些数据,以通知登录的人

AJAX/jQuery/Javascript:

<script type="text/javascript">
var refreshId = setInterval(function(){
    $.ajax({
        type: "POST",
        url: "cron/notify.php",
        cache: false,
        success: function(data){
            $.smallBox( 
        {
            var id = data[5],
            title: "New Ticket",
            content: "A new ticket has been created. Ticket ID: <strong>" +id+"</strong><p><h6>This will close in 4 Seconds.</h6>",
            color: "#000",
            timeout: 4000
        });
    }
    setInterval(get_new, 1000);
</script>

var refreshId=setInterval(函数(){
$.ajax({
类型:“POST”,
url:“cron/notify.php”,
cache:false,
成功:功能(数据){
$.smallBox(
{
变量id=数据[5],
标题:“新票”,
内容:“已创建新票证。票证ID:“+ID+”这将在4秒钟内关闭。”,
颜色:“000”,
超时:4000
});
}
设置间隔(获取新的,1000);
PHP


调试AJAX可能是一件痛苦的事。你必须有一个清晰的理解 零件如何装配在一起:

  • 使用$.ajax可以将ajax请求发送到服务器
  • 服务器上的cron/notify.php生成一些数据并将其发送回
  • 您为“success”定义的函数将与数据一起调用
  • 它调用smallBox来显示数据-
  • 所以有几个地方可能出了问题

    • 在浏览器中,开发人员工具/firebug:检查“网络”选项卡中的请求是否确实已发送
    • 在浏览器中:尝试直接打开后端的URL——在本例中为“cron/notify.php”——它是否显示您期望的数据
    • 在javascript代码中:您只处理javascript中的“成功”,请尝试为错误添加函数
    • 在浏览器控制台中:尝试启动$.smallBox()-它是否实际显示任何内容
    • 在javascript代码中:在将数据发送到smallBox之前:使用console.log(数据)将其转储到控制台,以检查其是否具有预期值

    有关如何使用firebug调试AJAX的教程,请参阅。问题在于,您没有循环所有来自db的值。之后,您将以
    json
    格式发送值,但在接收端没有解析。好的,我已经让它工作了,但通过var id=的数据[4]只拉“2”
    <?php
        mysql_connect(REDACTED FOR SECURITY) or die(mysql_error());
        mysql_select_db(REDACTED FOR SECURITY) or die(mysql_error());
        $query = mysql_query("SELECT * FROM tickets WHERE DATE_ADD(submitDate, INTERVAL 1 MINUTE) < CURTIME()  AND currentStatus='Open'");
        $array = mysql_fetch_row($result);
    
        echo json_encode($array);
        ?>
    
    <script type="text/javascript">
    var refreshId = setInterval(function() {
        $.ajax({
            type: "POST",
            url: "cron/notify.php",
            cache: false,
            success: function(data){
                $("#botSimple1").click(function(){
                $.smallBox( 
            {
                title: "New Ticket",
                content: "A new ticket has been created. Ticket ID: <strong>" +data[5]+"</strong><p><h6>This will close in 4 Seconds.</h6>",
                color: "#000",
                timeout: 4000
            });
                });
            }
        });
    });
    
    </script>