通过PHP填充HTLM表

时间:2016-11-03 09:09:06

标签: javascript php html

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

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

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

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

有没有办法实现这个目标?也许通过JavaScript?

2 个答案:

答案 0 :(得分:0)

这将帮助您入门

<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教程,你将了解如何循环数组。

答案 1 :(得分:0)

如果您有按行优先顺序存储的数据(也就是说,您的数据是数据的行而不是列的数组),则必须跟踪要打印的列。这是从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>