0

2 つのカウントダウン タイマーを含む Web ページがあります。時間は MySQL から取得されます。各タイマーが終了すると、UI ダイアログのモーダル div が開きます。

また、MySQL テーブルの時間を増やし、AJAX を使用してタイマーをリロードするリンクもあります。

このリンクをクリックすると時間が変わりますが、時間の更新がない場合はダイアログ div が表示されます

私が今持っているもの:ページの読み込み、カウンターが機能しています。60 秒後にダイアログ メッセージ div が表示される前に、その中のリンクを押します。カウンターは最初から始まります。しかし、30 秒後に dialog-message2 div が表示されます

私が間違ったことをしましたか?

メインページ

print "<div style='float: left;' id='time'>";
    require ('time.php');
print "</div>";

time.php

<div id="timer1" style="display: block;"></div><div id="timer2" style="display: block;"></div>

<div id="dialog-message" class="modal" title="Attention!">
      <p>
      <span class="ui-icon ui-icon-circle-check" style="float: left; margin: 0 7px 50px 0;"></span>
      xx minutes are up. <a href="/prolong" class="prolong">Take more time</a></p>
      </div>

<div id="dialog-message2" class="modal" title="Attention!">
      <p>
      <span class="ui-icon ui-icon-circle-check" style="float: left; margin: 0 7px 50px 0;"></span>
      x minutes are up. <a href="/prolong" class="prolong">Take more time</a></p>
      </div>

<script type="text/javascript">
$( document ).on( "click", ".prolong", function(e) {
          e.preventDefault();
          $.ajax({
            type: "GET",
            url: "/settime.php" // Here makes time update in MySQL database
          });
          $('#time').load('/time.php');
        });

        function alerter1() {
          $("#dialog-message" ).dialog({
            open: function() { $(".ui-dialog-titlebar-close").hide(); },
            modal: true,
            buttons: {
              Ok: function() {
                $( this ).dialog( "close" );
              }
            }
          });
        }
        function alerter2() {
           $( "#dialog-message2" ).dialog({
            open: function() { $(".ui-dialog-titlebar-close").hide(); },
            modal: true,
            buttons: {
              Ok: function() {
                $( this ).dialog( "close" );
              }
            }
          });
        }

$('#timer1').addAndRunBackwardTimer({
        seconds: '60',
        timeUnitsNames: {
            h: "h",
            m: "m",
            s: "s"
        },
        onTimerStop : alerter1
    })

$('#timer2').addAndRunBackwardTimer({
        seconds: '30',
        timeUnitsNames: {
            h: "h",
            m: "s",
            s: "m"
        },
        onTimerStop : alerter2
})
</script>
4

0 に答える 0