php html 在一个电视仪表板中显示大型动态表格数据
Posted
技术标签:
【中文标题】php html 在一个电视仪表板中显示大型动态表格数据【英文标题】:php html show large dynamic table data in one tv dashboard 【发布时间】:2017-11-04 14:33:06 【问题描述】:我有一个电视仪表板(无触摸)。我想从数据库 php/mysql 动态显示一些信息。 但这里有一个问题:当表格行超过屏幕高度时,我想自动显示第二页,10 秒后我想自动返回第一页。全部处于循环模式。这可能吗?
谢谢。
我有这样的代码:
<table class="table">
<thead>
<tr>
<th id="th_left">Ticket ID</th>
<th id="th_left">Device Model</th>
<th id="th_left">Client Name</th>
</tr>
</thead>
<?php
for ($j=0; $j<count($to_display_list); $j++)
$a = $to_display_list[$j]->status_id;
?>
<tbody>
<tr>
<td><strong><?php echo $to_display_list[$j]->ticket_id ?></strong></td>
<td><strong><?php echo $to_display_list[$j]->device_model ?></strong></td>
<td><strong><?php echo $to_display_list[$j]->client_name ?></strong></td>
</tr>
</tbody>
<?php
?>
</table>
你能帮帮我吗?
【问题讨论】:
一个简单的解决方案是创建两个页面,然后进行元刷新并在 10 秒后直接到第二个页面,然后反之。<meta http-equiv="refresh" content="10; url=page2.php">
好吗?那么这是否意味着它不起作用?我不明白这个问题
此数据多久更新一次?它会不会经常更新,以至于在 10 秒内一切都可能不同?如果 page1 上的最后一项也因为数据更新了 10 秒后显示在 page2 上会不会有问题?
【参考方案1】:
在<head>
中放置:
<?php
// connect to database here and do what you need to get the variable $to_display_list
if(count($to_display_list)>=30)
$page = $_GET['p'];
if($page == "1")
echo '<meta http-equiv="refresh" content="10; url=page.php?p=2">'; // replace page.php with your file name
else
echo '<meta http-equiv="refresh" content="10; url=page.php?p=1">'; // replace page.php with your file name
else // less than 30 items, only display one page
echo '<meta http-equiv="refresh" content="10">';
?>
然后将上面的代码部分替换为:
<table class="table">
<thead>
<tr>
<th id="th_left">Ticket ID</th>
<th id="th_left">Device Model</th>
<th id="th_left">Client Name</th>
</tr>
</thead>
<?php
if(count($to_display_list)>=30)
if($page == "1")
for ($j=0; $j<count($to_display_list)/2; $j++)
$a = $to_display_list[$j]->status_id;
else
for ($j=count($to_display_list)/2; $j<count($to_display_list); $j++)
$a = $to_display_list[$j]->status_id;
else // less than 30 items to display
for ($j=0; $j<count($to_display_list); $j++)
$a = $to_display_list[$j]->status_id;
?>
<tbody>
<tr>
<td><strong><?php echo $to_display_list[$j]->ticket_id ?></strong></td>
<td><strong><?php echo $to_display_list[$j]->device_model ?></strong></td>
<td><strong><?php echo $to_display_list[$j]->client_name ?></strong></td>
</tr>
</tbody>
<?php
?>
</table>
这使用 GET 方法和元刷新将页面 URL 更新为 ?p=1 或 ?p=2 并根据页面读取显示列表的不同部分。 它将在“第 1 页”显示一半数据,在“第 2 页”显示另一半数据。
【讨论】:
我会试试的。谢谢你。保持联系。 @Cristian-AngeloLungu 我注意到的一件事是它可能会首先显示“第 2 页”,然后开始循环。如果这是一个问题,我可以更改它,以便在第 1 页开始循环 非常感谢安德烈亚斯。您的解决方案有效。 @Cristian 尝试新的更新代码来修复您在下面提到的 【参考方案2】:Andreas, I have another question: If there is less rows, mean "<30", why I need to display page.php?p=2 ??? Below is my working code based on your answer (testing) Thank you.
<html>
<head>
<?php
$page = $_GET['p'];
if($page == "1")
echo '<meta http-equiv="refresh" content="10; url=page.php?p=2">'; // replace page.php with your file name
else
echo '<meta http-equiv="refresh" content="10; url=page.php?p=1">'; // replace page.php with your file name
?>
</head>
<body>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>NUMBER</th>
<th>MODEL</th>
<th>NAME</th>
<th>IN</th>
<th>START</th>
<th>PRICE</th>
<th>WAITING</th>
<th>DONE</th>
<th>TIME</th>
</tr>
</thead>
<tbody>
<?php
if($page == "1")
for ($x=0; $x<30/2; $x++)
?>
<tr>
<td><strong><?php echo $x ?></strong></td>
<td><strong>4545465</strong></td>
<td><strong>ANY MODEL</strong></td>
<td><strong>EMMET BROWN</strong></td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>00:05:08</td>
</tr>
<?php else
for ($x=30/2; $x<30; $x++)
?>
<tr>
<td><strong><?php echo $x ?></strong></td>
<td><strong>4545465</strong></td>
<td><strong>ANY MODEL</strong></td>
<td><strong>EMMET BROWN</strong></td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>00:05:08</td>
</tr>
<?php ?>
</tbody>
</table>
</body>
</html>
【讨论】:
好的,所以幻数是 30?如果超过 30 行,您只需要显示一页,如果少于 30 行,则需要两页?在这种情况下,您需要先连接到数据库并计算条目数,然后如果>30 则按上述操作,否则仅刷新页面。这就是我认为会起作用的方法。我将在上面编辑我的答案,以便您了解我的意思。 @Andreas,它正在工作。是的,“30”是神奇的数字,因为“30”行适合屏幕。当行 30 时需要分成 2 或 3 页。你的脚本没问题。非常感谢您的宝贵时间。 如果您需要三页,您只需添加几行即可获得三页。没问题:-)以上是关于php html 在一个电视仪表板中显示大型动态表格数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP 和 JavaScript 动态搜索 SQL 表并在 HTML 上显示