【问题标题】:PHP JSON To Array Values Into HTML TablePHP JSON 将值排列到 HTML 表中
【发布时间】:2019-08-26 15:16:51
【问题描述】:

我正在从 API URL 中提取 JSON 数据。我需要提取特定的 KEYS 并将它们放入包含列和行的表中。 6(列)x 20+(行)。 KEYS 都是重复的(val,content):

JSON 示例

    {
        "response": {
            "result": {
                "Leads": {
                    "row": [
                        {
                            "no": "1",
                            "FL": [
                                {
                                    "val": "LEADID",
                                    "content": "123"
                                },
                                {
                                    "val": "SMOWNERID",
                                    "content": "3232"
                                },
                                {
                                    "val": "Lead Owner",
                                    "content": "Cassie"
                                },
                                {
                                    "val": "First Name",
                                    "content": "Bobby"
                                },
                                {
                                    "val": "Last Name",
                                    "content": "Something"
                                },
                                {
                                    "val": "Email",
                                    "content": "email@gmail.com"
                                },
                                {
                                    "val": "Mobile",
                                    "content": "1111111111"
                                },
                                {
                                    "val": "SMCREATORID",
                                    "content": "0000003213"
                                },
                                {
                                    "val": "Created By",
                                    "content": "Cassie"
                                },
                                {
                                    "val": "Created Time",
                                    "content": "2019-04-03 15:14:05"
                                },
                                {
                                    "val": "Modified Time",
                                    "content": "2019-04-03 17:13:58"
                                },
                                {
                                    "val": "Full Name",
                                    "content": "Bobby Something"
                                },
                                {
                                    "val": "Street",
                                    "content": "123 Fake Rd"
                                },
                                {
                                    "val": "City",
                                    "content": "Fakecity"
                                },
                                {
                                    "val": "State",
                                    "content": "FK"
                                },
                                {
                                    "val": "Zip Code",
                                    "content": "11111"
                                },
                                {
                                    "val": "Email Opt Out",
                                    "content": "false"
                                },
                                {
                                    "val": "Salutation",
                                    "content": "Mr."
                                },
                                {
                                    "val": "Last Activity Time",
                                    "content": "2019-04-03 17:13:58"
                                },
                                {
                                    "val": "Tag",
                                    "content": "Tag"
                                },
                                {
                                    "val": "Account Name",
                                    "content": "Something"
                                },
                                {
                                    "val": "Territory Manager",
                                    "content": "Michael Something"
                                },
                                {
                                    "val": "Territory Manager_ID",
                                    "content": "321237000000291111"
                                },
                                {
                                    "val": "Classification",
                                    "content": "Something"
                                },
                                {
                                    "val": "Area",
                                    "content": "Zone 1"
                                },
                                {
                                    "val": "Account Number",
                                    "content": "32345"
                                }
                            ]
                        }
                    ]
                }
            },
            "uri": "/crm/private/json/Leads/getRecords"
        }
    }

PHP 代码

<?php

$url = 'URL';
$data = file_get_contents($url);
$parsed = json_decode($data, true);

$eachEntry = $parsed['response']['result']['Leads']['row'];

$valuesIWant = ["First Name", "Last Name", "Street", "City", "State", "Zip Code"];

echo '<table class="uabb-table-inner-wrap">';
 echo   '<thead class="uabb-table-header"><tr class="table-header-tr">
            <th class="table-header-th">First Name</th><th class="table-header-th">Last Name</th><th class="table-header-th">Street</th><th class="table-header-th">City</th><th>State</th><th class="table-header-th">Zip Code</th>
        </tr></thead>';
foreach ($eachEntry as $entry) {

    $FL = $entry['no'];

    //printf("\n");

    $entries = $entry['FL'];



    echo '<tbody class="uabb-table-features"><tr class="tbody-row">';
    foreach ($entries as $value) {

        $val = $value['val'];

        $content = $value['content'];

        if (in_array($val, $valuesIWant)) {

            //$out = $val;
           $out2 = $content;

            //echo '<td>'. $out .'</td>';
            echo '<td class="table-body-td">'. $out2 .'</td>';

        }

    }
    echo '</tr></tbody>';
}

echo '</table>';

?>

我正在尝试输出到表结构中:

表输出示例

图片:https://imgur.com/5LFy2Sl


这是来自PHP JSON Decoding To Array To Grab Specific Key Values (All fields same name)的扩展问题

解决方案

<style>
.uabb-table {
    overflow-x: auto;
    margin-left: auto;
    margin-right: auto;
    zoom: 1;
    display: flex;
}

.uabb-table .uabb-table-element-box {
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    -webkit-box-flex: 1;
    flex-grow: 1;
}

.uabb-table .uabb-table-wrapper {
    text-align: center;
    position: relative;
    height: 100%;
}

.uabb-table-inner-wrap {
    width: 100%;
}

.fl-module-uabb-table .uabb-table-wrapper .uabb-table-inner-wrap {
    border-collapse: collapse;
    margin: 0;
}


.uabb-table .uabb-table-wrapper {
    text-align: center;
    position: relative;
}

.fl-module-uabb-table .uabb-table-wrapper .uabb-table-inner-wrap {
    border-collapse: collapse;
    margin: 0;
}

.uabb-table-inner-wrap .uabb-table-header .table-header-th {
    border: 1px solid #000000;
    padding: 15px;
}

.uabb-table .uabb-table-header .table-header-th {
    overflow-wrap: normal;
}

.uabb-table .uabb-table-header .table-header-th, .uabb-table .uabb-table-features .table-body-td {
    vertical-align: middle;
    padding: 15px;
    border: 1px solid #000000;
}

.uabb-table .uabb-table-header .table-header-tr .table-header-th .th-style .head-inner-text, .uabb-table .uabb-table-header .table-header-tr .table-header-th .th-style {
    background: none;
}

.uabb-table .table-header-th .th-style {
    padding-right: 15px;
}

label {
    display: inline-block;
    margin-bottom: .5rem;
}

.uabb-table .uabb-table-header .table-header-tr .table-header-th .th-style .head-inner-text, .uabb-table .uabb-table-header .table-header-tr .table-header-th .th-style {
    background: none;
}

.content-text {text-transform: uppercase;}

</style>

<?php

$url = 'URL';
$data = file_get_contents($url);
$parsed = json_decode($data, true);

$eachEntry = $parsed['response']['result']['Leads']['row'];

$valuesIWant = ["First Name", "Last Name", "Street", "City", "State", "Zip Code"];

echo    '<div class="uabb-table-module-content uabb-table">
            <div class="uabb-table-element-box">
                <div class="uabb-table-wrapper">
                    <table class="uabb-table-inner-wrap">
                        <thead class="uabb-table-header">
                            <tr class="table-header-tr">
                                <th class="table-heading-0 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-0 th-style">
                                        <label class="head-inner-text">First Name</label>
                                    </label>
                                </th> 
                                <th class="table-heading-1 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-1 th-style">
                                        <label class="head-inner-text">Last Name</label>
                                    </label>
                                </th> 
                                <th class="table-heading-2 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-2 th-style">
                                        <label class="head-inner-text">Street</label>
                                    </label>
                                </th> 
                                <th class="table-heading-3 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-3 th-style">
                                        <label class="head-inner-text">City</label>
                                    </label>
                                </th> 
                                <th class="table-heading-4 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-4 th-style">
                                        <label class="head-inner-text">State</label>
                                    </label>
                                </th> 
                                <th class="table-heading-5 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-5 th-style">
                                        <label class="head-inner-text">Zip Code</label>
                                    </label>
                                </th> 
                            </tr>
                        </thead>';
foreach ($eachEntry as $entry) {

    $FL = $entry['no'];

    //printf("\n");

    $entries = $entry['FL'];

    echo '<tbody class="uabb-table-features"><tr class="tbody-row">';
    foreach ($entries as $value) {

        $val = $value['val'];

        $content = $value['content'];

        if (in_array($val, $valuesIWant)) {

            //$out = $val;
           $out2 = $content;

            //echo '<td>'. $out .'</td>';
            echo '<td class="table-body-td  table-body-0" colspan="" rowspan=""><span class="content-text">'. $out2 .'</span></td>';

        }

    }
    echo '</tr></tbody>';
}

echo '</table></div></div></div>';

?>

下一步是使该表可编辑并将更新发布到 CRM API。

PHP JSON Array Values In HTML Table Post Update To API

【问题讨论】:

  • 您发布的内容按原样不是有效的 JSON。此外,“它对我不起作用”并不是一个真正有用的问题陈述。 正在发生什么?你已经做了哪些调试?
  • 也许我可以,但我不会。如果正文中不存在这个问题,那么大部分人都不会看。
  • 我用完整的 JSON 更新了正文。谢谢帕特里克!
  • 太棒了!我的其他问题呢?
  • 你提到的使用 echo 的 PHP 表在哪里?

标签: php json html-table


【解决方案1】:

我解决了这个问题:

<style>
.uabb-table {
    overflow-x: auto;
    margin-left: auto;
    margin-right: auto;
    zoom: 1;
    display: flex;
}

.uabb-table .uabb-table-element-box {
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    -webkit-box-flex: 1;
    flex-grow: 1;
}

.uabb-table .uabb-table-wrapper {
    text-align: center;
    position: relative;
    height: 100%;
}

.uabb-table-inner-wrap {
    width: 100%;
}

.fl-module-uabb-table .uabb-table-wrapper .uabb-table-inner-wrap {
    border-collapse: collapse;
    margin: 0;
}


.uabb-table .uabb-table-wrapper {
    text-align: center;
    position: relative;
}

.fl-module-uabb-table .uabb-table-wrapper .uabb-table-inner-wrap {
    border-collapse: collapse;
    margin: 0;
}

.uabb-table-inner-wrap .uabb-table-header .table-header-th {
    border: 1px solid #000000;
    padding: 15px;
}

.uabb-table .uabb-table-header .table-header-th {
    overflow-wrap: normal;
}

.uabb-table .uabb-table-header .table-header-th, .uabb-table .uabb-table-features .table-body-td {
    vertical-align: middle;
    padding: 15px;
    border: 1px solid #000000;
}

.uabb-table .uabb-table-header .table-header-tr .table-header-th .th-style .head-inner-text, .uabb-table .uabb-table-header .table-header-tr .table-header-th .th-style {
    background: none;
}

.uabb-table .table-header-th .th-style {
    padding-right: 15px;
}

label {
    display: inline-block;
    margin-bottom: .5rem;
}

.uabb-table .uabb-table-header .table-header-tr .table-header-th .th-style .head-inner-text, .uabb-table .uabb-table-header .table-header-tr .table-header-th .th-style {
    background: none;
}

.content-text {text-transform: uppercase;}

</style>

<?php

$url = 'URL';
$data = file_get_contents($url);
$parsed = json_decode($data, true);

$eachEntry = $parsed['response']['result']['Leads']['row'];

$valuesIWant = ["First Name", "Last Name", "Street", "City", "State", "Zip Code"];

echo    '<div class="uabb-table-module-content uabb-table">
            <div class="uabb-table-element-box">
                <div class="uabb-table-wrapper">
                    <table class="uabb-table-inner-wrap">
                        <thead class="uabb-table-header">
                            <tr class="table-header-tr">
                                <th class="table-heading-0 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-0 th-style">
                                        <label class="head-inner-text">First Name</label>
                                    </label>
                                </th> 
                                <th class="table-heading-1 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-1 th-style">
                                        <label class="head-inner-text">Last Name</label>
                                    </label>
                                </th> 
                                <th class="table-heading-2 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-2 th-style">
                                        <label class="head-inner-text">Street</label>
                                    </label>
                                </th> 
                                <th class="table-heading-3 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-3 th-style">
                                        <label class="head-inner-text">City</label>
                                    </label>
                                </th> 
                                <th class="table-heading-4 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-4 th-style">
                                        <label class="head-inner-text">State</label>
                                    </label>
                                </th> 
                                <th class="table-heading-5 table-header-th" rowspan="" colspan="">
                                    <label class="head-style-5 th-style">
                                        <label class="head-inner-text">Zip Code</label>
                                    </label>
                                </th> 
                            </tr>
                        </thead>';
foreach ($eachEntry as $entry) {

    $FL = $entry['no'];

    //printf("\n");

    $entries = $entry['FL'];

    echo '<tbody class="uabb-table-features"><tr class="tbody-row">';
    foreach ($entries as $value) {

        $val = $value['val'];

        $content = $value['content'];

        if (in_array($val, $valuesIWant)) {

            //$out = $val;
           $out2 = $content;

            //echo '<td>'. $out .'</td>';
            echo '<td class="table-body-td  table-body-0" colspan="" rowspan=""><span class="content-text">'. $out2 .'</span></td>';

        }

    }
    echo '</tr></tbody>';
}

echo '</table></div></div></div>';

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 2017-11-10
    • 2014-01-06
    • 2015-06-05
    • 2013-11-15
    相关资源
    最近更新 更多