我有一个包含文本行的数据库。我有一个网页,里面有很多内容。我需要从数据库中读取一行文本,将其显示在页面中央,等待“x”秒,然后读取下一行并将其显示在页面中间。我需要这样做而不刷新网页并扰乱页面上的其他事件。
我已经让脚本在我阅读的地方工作,并将文本分配给变量。但是,如何将文本显示在窗口的中央,在其余部分的顶部,然后继续这样做,直到我到达文本行的末尾?我不是在问如何阅读文本。我需要帮助在中间显示文本,例如位于页面中间的跨度中。
这是当前的代码..
$query = "SELECT * FROM text_lines WHERE tid='$tsid'";
$result = mysql_query($query) or exit(mysql_error());
$timepause = 6;
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$textline = $row['text'];
?>
<script>
document.getElementById("textline").innerHTML = $textline;
</script>
<?php
}
答案 0 :(得分:2)
您正在处理三种类型的编程,您似乎可能无法清楚地了解其角色。
首先,您创建了发送到浏览器的HTML。这就是PHP所做的,它在Web服务器上运行。数据库代码是此过程的一部分。这必须在“一次性”完成,你不能运行一些PHP代码,然后在浏览器端“等待几秒钟”,然后再运行一些。
然后你有CSS。它嵌入到HTML中,并指示浏览器如何显示内容。使用CSS完成在页面中间显示跨度。这也是一个“一次性”动作 - 在浏览器接收到所有HTML并构建页面结构之后但在显示之前,它会遍历页面并执行CSS来移动内容,设置颜色和字体等。
最后你有了Javascript,它在页面加载后在浏览器上运行。这是你的页面中唯一可以“异步”进行操作的部分,即不是“一次性”,而是做一点,然后等待,然后再做更多的事情。或者等待键盘或鼠标输入并对其作出反应。 Javascript允许您操作CSS和HTML,从最初从PHP脚本发送的内容修改它。
我假设你没有使用AJAX,所以这意味着Javascript操作的所有数据都需要从头开始。你不能让Javascript去告诉Web服务器再运行一些PHP并发送HTML(这就是AJAX所做的)。
因此,您的PHP需要从数据库中获取所有文本行并将其包含在页面中。然后CSS需要隐藏除第一行之外的所有内容。最后,Javascript将等待几秒钟,更改CSS以隐藏第一行并显示下一行,并重复此过程。
答案 1 :(得分:0)
您无法直接在javascript中使用PHP变量:
你需要包装它:
<script>
document.getElementById("textline").innerHTML = <?php echo $textline; ?>
</script>
答案 2 :(得分:0)
您可以将文本放在div中,然后将div放在居中位置并使用高z-index,使其显示在所有其他元素之上。
要在几秒钟后运行代码,您可以使用setInterval()方法。