【问题标题】:Codeigniter Generate Dynamic Table Row DataCodeigniter 生成动态表行数据
【发布时间】:2019-08-02 23:08:27
【问题描述】:

我正在尝试加载动态表数据,我的 URI 是;

example.coma/admin/view/form/<form_id>

我的模型查询是;

public function getRecords($table, $form_id) {
        $this->db->select('*');
        $this->db->from($table);
        $this->db->where('form_id', $form_id); 
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            return $query->result_array(); 
        } 
}

这会返回一个数据数组,我需要根据这个数组构建一个HTML表格。

我将展示查询返回的两个不同数组的示例。

数组 1。

(select * from members where form_id = 123)

Array
(
    [0] => Array
        (
            [id] => 104
            [member_no] => 
            [firstname] => Peter
            [lastname] => Keys
            [address] => 17 main road
            [email] => P3TER@HOTMAIL.CO.UK
            [postcode] => UK123
            [city] => London
            [telnum] => 123123123
            [fk_form_submission_id] => 123
        )
)

数组 2。

(select * from orders where form_id = 123)

Array
(
    [0] => Array
        (
            [colour] => blue 
            [type] => shirt
            [age] => 34
            [size] => medium
            [quantity] => 2
            [discount] => Y
            [posted] => N
        )
)

我想要实现的是显示一个垂直表来显示数据集。显然每个表都会有不同的行名,下面的例子;

表 1。

+---------------+-------+
| ID            | 104   |
+---------------+-------+
| Member Number |       |
+---------------+-------+
| First Name    | Peter |
+---------------+-------+
| Last Name     | Keys  |
+---------------+-------+
| etc           | etc   |
+---------------+-------+

表 2。

+--------+--------+
| Colour | blue   |
+--------+--------+
| P Type | shirt  |
+--------+--------+
| Age    | 34     |
+--------+--------+
| Size   | medium |
+--------+--------+
| etc    | etc    |
+--------+--------+

如何设置这些表格行名?我是否需要创建另一个表头数组并合并两个数组?

感谢任何建议。

【问题讨论】:

  • 你可以通过foreach循环来实现

标签: php arrays codeigniter dynamic codeigniter-3


【解决方案1】:

我不确定我是否完全理解 - 但如果你想动态设置数组的键,你可以使用 foreach 循环来做到这一点:

<table>
<tr><th>Key</th><th>Value</th></tr>
<?php foreach($res[0] as $key => $val)
    echo '<tr><td>'. $key . '</td><td>' . $val . '</td></tr>'; ?>
</table>

编辑:

如果您想将键名更改为更易于显示的名称,我建议您使用另一个数组进行交换(大部分时间是为了翻译...)。

$displayName = array("id" => "ID", "member_no" => "Member Number", "firstname" => "First Name" ..., "type" => "P type", ...);
foreach($res[0] as $key => $val)
    echo '<tr><td>'. $displayName[$key] . '</td><td>' . $val . '</td></tr>';

您也可以使用array_combine,但这需要知道您拥有哪种密钥...

请注意,此解决方案仅在显示名称对于所有类型的键都是唯一的情况下才有效

【讨论】:

  • @TheOrdinaryGeek - 现在我想我明白你的问题了 - 更新了我的帖子
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多