我有一个表格,其结构与此类似
<table style="width:100%">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
我希望能够使用PHP的flush函数在数据输出时按列打印列。所以在这个例子中我希望它打印First Name,Jill,Eve,然后是第二列;姓史密斯;杰克,依此类推。
我不想等到数据被加载(脚本需要一段时间,而且整个过程就是让它在运行时回显)并且我不想处理AJAX。
我唯一能想到的就是使用一堆go(我知道这是一个糟糕的实现)。有人有什么想法吗?
答案 0 :(得分:0)
首先,您应该加快脚本或数据库查询的速度。这样就可以解决问题而不会出现任何问题。
如果您真的想使用flush
输出列,可以选择生成JavaScript。浏览器可能会执行javascript并在表中插入列。 这种方法很复杂,我不推荐。
示例:
<script src="...jquery..."></script>
<table id="mytable">
<!-- data will come later -->
</table>
<script>
addColumnToTable = function(table, column) {
// You need to implement this to manipulate table "mytable"
}
</script>
// Generate in php and flush:
<script>
var column = { "header": "Firstname", "rows": ["Jill", "Eve"] }
addColumnToTable($('#mytable'), column)
</script>
// Generate in php and flush:
<script>
var column = { "header": "Lastname", "rows": ["Smith", "Jackson"] }
addColumnToTable($('#mytable'), column)
</script>
// Generate in php and flush:
<script>
var column = { "header": "Age", "rows": ["50", "94"] }
addColumnToTable($('#mytable'), column)
</script>
答案 1 :(得分:0)
我想我想出了一个非常创新的解决方案。它确实使用了一行javascript,但它基本上只是PHP中的手动AJAX过程。
所以现在我有一个正在运行的文件,当它正在运行时,它在PHP页面运行时输出一个表。我所做的是将其分解为两个文件。这个例子就是你如何基本上擦除页面(或页面上的元素并重新加载它)。所以你将有第一页
<?php
$i=0;
while($i<100){
echo (file_get_contents("http://192.241.240.69/hakre/page2.php?var=$i"));
flush();
ob_flush();
usleep(200000);
$i++;
}
这调用第2页,它具有javascript擦除页面功能(可以擦除单个元素并使用更新的内容重新加载它(参见下面的第二页代码)
<?php
$var = $_GET['var'];
echo '<script type="text/javascript">'."document.body.innerHTML = ''".'</script>';
echo $var;
?>
结果将是http://192.241.240.69/hakre/page1.php - 不是最性感的解决方案,但它确实只使用一行javascript和几乎所有PHP与flush函数一起使用。以下是按列http://192.241.240.69/hakre/Table.php
编写页面列的示例