【问题标题】:how do json data become dynamic html tables using php?json数据如何使用php变成动态html表?
【发布时间】:2020-03-31 06:01:42
【问题描述】:

如何使用json键作为表名,并在表中显示数据,而不创建表名

{
   "status": "sukses",
   "title": "OK",
   "img": "ok.jpg",
    "data": {
    "network": {
        "technology": "No cellular connectivity",
        "2g_bands": " N\/A",
        "gprs": "No",
        "edge": "No"
      }
   }
}

我想变成这样

statuss title img     technology               2g_bands gprs edge
sukses  ok    ok.jpg  No cellular connectivity N\/A     No    No

在php下面,我很困惑如何检索json键来检索我需要动态的表名

<?php
$Libs = new Library();
$result = $Libs->pilihmodel($idbrand,$idmodel);
if ($result->rowCount()>0) {
    while ($datas = $result->fetch(PDO::FETCH_OBJ)) {
        $datass = $datas->jsondetail;
        $hasiljson =  json_decode($datass, TRUE);
        $binatang = array($hasiljson);
        echo "<table>";
        foreach ($binatang as $jenis) {
            foreach ($jenis as $nama) {
                echo "<td>$nama</td>";
            }

        }
      echo "</table>";
}

【问题讨论】:

  • 由于您没有显示创建表格的 PHP 代码,我们无法告诉您在这种特殊情况下它是如何完成的。
  • 或者您是在问如何编写这样的代码?目前还不清楚。您编写它的方式表明您可能希望我们查看一些现有代码。我说不出来。
  • @ADyson,对不起,我忘记了 php 代码的位置
  • 好的,谢谢。好吧,这段 PHP 代码所做的只是输出一些基本数据,&lt;br&gt; 用于换行。您是否至少尝试过 来生成 HTML 表格?另外,您的 SQL 查询返回多少行数据?
  • @ADyson,我用 html 创建了一个表,但我希望从 json 键中获取表名

标签: php html json


【解决方案1】:

您已经完成了一半。在 PHP foreach 循环中使用 $key =&gt; $value) 语法很容易获取密钥。然后,您可以使用每个字段的键和值并行构建标题行和数据行。由于 JSON 的结构,您还需要为“数据”对象创建一个特殊情况。

(如果结构是不可预测的,你可以创建一个递归函数来遍历结构,如果它是一个普通字符串则打印一个字段,或者如果它是另一个数组则找到它的孩子,但这可能对你来说有点过头了'在这里做。如果你真的需要,请提及。)

这将起作用:

$hasiljson =  json_decode($datass, TRUE);
$header = "";
$body = "";

foreach ($hasiljson as $key => $value)
{
    if ($key != "data")
    {
        $header .= "<td>$key</td>";
        $body .= "<td>$value</td>";
    }
    else
    {
        foreach ($hasiljson["data"]["network"] as $key1 => $value1)
        {
            $header .= "<td>$key1</td>";
            $body .= "<td>$value1</td>";
        }
    }
}
echo "<table><tr>$header</tr><tr>$body</tr></table>";

演示:http://sandbox.onlinephpfunctions.com/code/8b61f2933b0ebf8a3ea1091c1e4474882e8c90a1

【讨论】:

    猜你喜欢
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 2017-07-12
    • 2018-12-13
    • 2016-04-20
    • 2013-01-30
    相关资源
    最近更新 更多