PHP将setTimeout()回显到javascript

时间:2014-11-20 06:29:30

标签: javascript php ajax

我有一个使用PHP的ajax应用程序。它加载视频,ajax需要在从数据库获取可变秒数后加载另一个视频。我试图回应一个setTimeout和视频,就像这样,loadContent是加载视频的功能。

            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。

当我的数据库告诉它时,如何让页面刷新?

更新:我被告知需要将变量转换为Int,但情况并非如此,因为当没有视频时,此代码会运行。

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

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

这不涉及任何php变量,它是一个直接数字,这也不行。我很好奇如何通过成功将数据传递给ajax,但我在搜索时无法在线查找相关信息。

1 个答案:

答案 0 :(得分:1)

根据您提供的信息,我的最佳猜测是PHP变量将被视为string而不是integer

所以转换成这样:

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

旁注了解如何在将来使用ajax分离PHP和JS(服务器端和客户端)是明智的:)