我有一个使用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,但是在搜索时无法在线查找相关信息。
最佳答案
根据您提供的信息,我的最佳猜测是PHP变量将被视为string
而不是integer
。
所以像这样转换它:
echo '<script>
setTimeout(function(){loadContent();}, parseInt('.$refreshTimer.'));
</script>';
附带说明,将来学习如何使用ajax分隔PHP和JS(服务器端和客户端)是明智的:)