Как получить результат функции js, вызванной с <script>? - PullRequest
0 голосов
/ 29 мая 2019

В настоящее время я работаю над страницей тестов с кодом, который люди уже сделали раньше.Я должен добавить таймер, и когда он закончится, я должен отправить форму.Я решил сделать мою функцию логической, чтобы получить результат непосредственно с возвратом.Когда это правда, тогда таймер закончился.Но проблема в том, что я вызываю функцию js в html, и я не знаю, как получить возвращаемый результат.

Это часть кода, по которой мне нужна помощь:

echo '<body>
  <div class="body">';
       if($type=='t'){
             $timer = false;
             echo '<div id="clockdiv"></div>';
             echo '<script language="javascript">timer = setInterval(timer(), 10000)</script>';
             echo $timer;
         }

И моя функция JS:

function timer(){
          var running = false;
          var time_in_minutes = 0.3;
          var current_time = Date.parse(new Date());
          var deadline = new Date(current_time + time_in_minutes*60*1000);
          function run_clock(id,endtime){
            var clock = document.getElementById(id);
            function update_clock(){
                          function time_remaining(endtime){
                             var t = Date.parse(endtime) - Date.parse(new Date());
                             var seconds = Math.floor( (t/1000) % 60 );
                             var minutes = Math.floor( (t/1000/60) % 60 );
                             var hours = Math.floor( (t/(1000*60*60)) % 24 );
                             var days = Math.floor( t/(1000*60*60*24) );
                             return {'total':t, 'days':days, 'hours':hours, 'minutes':minutes, 'seconds':seconds};
                          }
        var t = time_remaining(endtime);
        clock.innerHTML = 'minutes: '+t.minutes+'<br>seconds: '+t.seconds;
        if(t.total<=0){ 
                  clearInterval(timeinterval);
                  clock.innerHTML = 'Temps écoulé';
                  running = true;
                 }
    }
    update_clock(); // run function once at first to avoid delay
    var timeinterval = setInterval(update_clock,1000);
}
          run_clock('clockdiv',deadline);
          return running;
}

1 Ответ

1 голос
/ 29 мая 2019

Попробуйте код ниже

<body>
<div class="body">
    <?php 
        if($type=='t'){
            $timer = false;
    ?>
        <div id="clockdiv"></div>
        <script language="javascript">timer = setInterval(timer(), 10000)</script>
    <?php 
            echo $timer; 
        }
    ?>
</div>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...