使用AJAX和setInterval()标记保持值的变量

时间:2018-12-04 10:11:15

标签: php jquery ajax queue setinterval

我被困在工作中。 因此,我希望'flag'变量在执行php文件后保留一些值来检查Ajax结果。这样做的目的是,如果当前值与'flag'变量不同,则播放声音。 这是我用php,mysql和jQuery构建的队列系统... 因此,请检查此代码

首先检查我的jQuery

<script>
$(document).ready(function(){

    setInterval(function(){loadDataPemandu()}, 2000);

});


function loadDataPemandu(door,session){

  $( "h2" ).each(function(){

    var tampungNilai = $(this).attr("id");
    var link         = "http://localhost/antrian_v2/js/ajax_act/AutoLoadPemandu.php";

     $.ajax({

        type     : "POST",
        dataType : "json",
        url      : link,
        cache    : false,
        data     : "TicketGroupId="+tampungNilai,
        success  : function(data) {

        if(data.nomortiket == ""){
              $( "h2#"+tampungNilai ).text("");
              $( "td."+tampungNilai ).css({
                "color": "black",
                "background-color": "#4569de",
                "font-style": "normal",
                "font-weight": "bold",
               });
              $( "td."+tampungNilai ).removeAttr("jAlert");
        } else {
              $( "h2#"+tampungNilai ).text(data.nomortiket);
                  $( "h2#"+tampungNilai ).css({
                 "font-size" : "260%"
               });

              $( "td."+tampungNilai ).css({
                  "color": "black",
                   "background-color": "yellow",
                   "font-style": "normal",
                   "font-weight": "bold",
                });
              $( "td."+tampungNilai ).attr("jAlert", data.nomortiket);  
        }

     });

  }

}
</script>

然后我用上面的Ajax结果动态填充表,该结果始终使用setInterval运行2秒

<table align="center" id="tableGue">
            <tbody align="center" id="AutoLoadPemandu">
            <!-- <tbody id="AutoLoadPemandu" align="center"> -->    
            <?php
            include"/config/koneksi.php";

            $DoorId = isset($_GET['door']) ? $_GET['door'] : '0';
            $no = 1;
            $qrySelect = "SELECT * FROM qm_ms_ticketgroup WHERE TicketGroupActive = 'Y' ORDER BY TicketGroupId";
            $sqlSelect = mysql_query($qrySelect);

            while($tg = mysql_fetch_array($sqlSelect)){

            $TicketGroupId = $tg['TicketGroupId'];
            $Datahead1 = "<tr>
                            <td align='center' valign='middle'>
                                <div class='nama_table'>
                                $tg[TicketGroupName]
                                </div>
                            </td>
                          </tr>";


            $DataBody2 = "<tr>
                            <td align='center' valign='middle' class='$TicketGroupId nama_antrian'>

                                    <h2 class='testtt' id='$TicketGroupId'></h2>

                            </td>
                         </tr>";


            echo $Datahead1 . $DataBody2;
            $no++; 

            }

            ?>  

            </tbody>
         </table>

我想要,如果$('#TicketGroupId')由Ajax填充,那么如果结果相同,它们将只显示一次声音,但是如果结果具有新值,则每次由setInterval运行的函数都会播放声音。

查看此图片 enter image description here

运行setInterval并在队列中找到新结果时,播放声音,但是如果运行setInterval后结果仍然相同,则不要播放声音。

我需要建议,希望您理解我要说的... 谢谢你们……

0 个答案:

没有答案