繁体   English   中英

通过PHP填充HTML表

[英]Populate HTML table through PHP

我正在寻找一种在加载HTML文档时通过PHP填充HTML表的方法。

我有一个php文件,它创建所需的表数据:

echo <table id="mytable" ... </table>

此PHP脚本的输出应在其加载期间写入html文件。

有什么办法可以做到这一点? 也许通过JavaScript?

这会让您入门

<table>
  <thead>
    <tr>
      <th>Row One</th>
      <th>Row Two</th>
    </tr>
  </thead>
  <tbody>
    <?php foreach( $array as $key ) { ?>
    <tr>
      <td><?php echo $key[ 'rowOne' ]; ?></td>
      <td><?php echo $key[ 'rowTwo' ]; ?></td>
    </tr>
  <?php } ?>
  </tbody>
</table>

您遍历数组的每一行并回显所需的信息。 您确实需要做一些PHP教程,并且您将了解如何循环数组。

如果您具有按行优先顺序存储的数据(即,数据是数据的行而不是列的数组),则必须跟踪要打印的列。 这是从MySQL数据库接收数据的典型方法。

您可以使用$columns = array_keys($row)通过查看第一行来完成此操作,或者如果预先知道列键,则可以像下面的示例中那样对列键进行硬编码。

<?php

$data = [
    [
        "name"  => "Alice",
        "email" => "alice@example.com",
        "home_address" => "Alice Lane 61"
    ],
    [
        "name"  => "Bob",
        "age"   => 16,
        "home_address" => "Bob St. 42"
    ]
];

$columns = [ "name", "age", "email", "home_address" ];

?>
<html>
<body>
<table>
    <tr>
        <?php foreach($columns as $column) { ?>
            <th><?php echo $column; ?></th>
        <?php } ?>
    </tr>
    <?php foreach ($data as $row) { ?>
        <tr>
            <?php foreach($columns as $column) { ?>
                <td>
                    <?php 
                        if (isset($row[$column])) {
                            echo $row[$column];
                        } else {
                            echo "N/A";
                        }
                    ?>
                </td>
            <?php } // end $column foreach ?>
        </tr>
    <?php } // end $row foreach ?>
</table>
</body>
</html>

请注意,此处并非所有行都具有相同的列。 这在表的if语句中处理。

此示例输出:

 <html> <body> <table> <tr> <th>name</th> <th>age</th> <th>email</th> <th>home_address</th> </tr> <tr> <td>Alice </td> <td>N/A </td> <td>alice@example.com </td> <td>Alice Lane 61 </td> </tr> <tr> <td>Bob </td> <td>16 </td> <td>N/A </td> <td>Bob St. 42 </td> </tr> </table> </body> </html> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM