2014-11-20 3 views
0

У меня есть приложение ajax с использованием PHP. Он загружает видео, и ajax необходимо загрузить другое видео через переменное количество секунд, которое он получает из базы данных. Я пытаюсь повторить setTimeout вместе с видео, например, с loadContent, который является функцией загрузки видео.PHP echoing setTimeout() в javascript

  echo '<iframe id="youtubeFrame" src="//www.youtube.com/embed/ 
      '.$row['youtube'].' 
      ?autoplay=1" frameborder="0" allowfullscreen></iframe>'; 

      $refreshTimer = $row['end'] - $time; 
      $refreshTimer = $refreshTimer * 1000; 
      echo $refreshTimer; 
      echo '<script> 
      setTimeout(loadContent, '.$refreshTimer.'); 
      </script>'; 

Видео нагрузки, переменная refreshTimer это нужное количество секунд, но это не будет работать SetTimeout.

Как мне обновить страницу, когда моя база данных сообщит об этом?

UPDATE: Мне сказали, что переменная должна быть преобразована в Int, но это не может быть так, потому что, когда нет видео, этот код запускается.

 echo '<h1>Upload content to start the show</h1>'; 

      echo '<script> 
      setTimeout(loadContent, 4000); 
      </script>'; 

Это не связано с любыми переменными php, это прямой номер, и это тоже не работает. Мне интересно, как передать данные в ajax через успех, но у меня возникают проблемы с поиском релевантной информации в Интернете при поиске.

+0

Почему не устанавливать время ожидания для AJAX? –

+0

Что такое 'echo $ refreshTimer'? И вызывает ли 'loadContent' вызов хотя бы один раз? Подумайте, запутаете ли вы это с помощью 'setInterval'. – Sir

+0

$ refreshTimer показывает сумму, которую я хочу, и loadContent получает первоначальный вызов. Что касается Сайеда Квайба, это отличный момент. Мне еще не пришлось использовать успех. Как передать данные на него? – Goose

ответ

1

Мое лучшее предположение, основанное на вашей информации, является переменной PHP, которая будет считаться string, а не integer.

Так преобразовать его так:

echo '<script> 
setTimeout(function(){loadContent();}, parseInt('.$refreshTimer.')); 
</script>'; 

Примечание стороны было бы целесообразно, чтобы узнать, как отделить PHP и JS (на стороне сервера и на стороне клиента), используя Ajax в будущем :)

+0

Вы не показывали parseInt. Кроме того, я могу запустить javascript-функцию в переменной php. Я думал, что parseInt предположительно будет использоваться с функциями javascript. – Goose

+0

@Goose Я отредактировал его сейчас. PHP - это совершенно другой язык для JS, поскольку JS не знает, содержит ли переменная число или строку. Обычно он по умолчанию будет содержать строку, пока вы не преобразуете ее в целое. И setTimeout ожидает номер, или он не будет работать. – Sir

+0

Ах, это не сработает. Я обновил свой вопрос, чтобы показать еще один важный намек. – Goose