PHP echoing setTimeout() to javascript


PHP echoing setTimeout() to javascript

我有一个使用 PHP 的 ajax 应用程序。它加载视频,ajax 需要在从数据库中获取的可变秒数后加载另一个视频。我正在尝试将 setTimeout 与视频一起回显,就像这样,加载内容是加载视频的函数。

            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,但是在搜索时无法在线查找相关信息。

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

所以像这样转换它:

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

旁注:明智的做法是学习如何在将来使用 ajax 将 PHP 和 JS(服务器端和客户端)分开:)