Codeigniter爆炸文件名并返回视图只提供一个文件

时间:2016-02-03 09:48:54

标签: php codeigniter

我有多个文件,其名称格式为field1_field2_field3.pdf。我将每个字段分开,然后我想将它返回到视图并对其进行分页。可以吗?到目前为止,我已经设法爆炸文件名,但只有一个文件返回到视图。请帮忙。

控制器:

    $this->load->helper('directory');
    $map = directory_map('./assets/data/');
    $nric = $this->session->userdata('nric');
    foreach($map as $row)
    {
        $separate = explode('_',$row);
    }
    $data['name'] = $separate[0];
    $data['product'] = $separate[1];
    $data['policyno'] = substr($separate[2],0,strlen($separate[2])-4);
    $this->load->view('includes/user/header');
    $this->load->view('user/statements',$data);
    $this->load->view('includes/user/footer');

查看

<tr>
<td><?php echo $name; ?></td>
<td><?php echo $product; ?></td>
<td><?php echo $policyno; ?></td>
</tr>

1 个答案:

答案 0 :(得分:0)

在Controller中,您希望数据数组包含多个值,因此请执行此类操作

编辑:我假设您的$ map变量是这样的(如果你想看到,请执行print_r)

$map = [
    'field1_field2_field3.pdf',
    'field11_field22_field33.pdf',
    'field111_field222_field333.pdf'
]

所以使用循环

foreach($map as $row)
{
    $separate = explode('_',$row);
    $data[] = [ 
        'name' => $separate[0],
        'product' => $separate[1],
        'policyno' => substr($separate[2],0,strlen($separate[2])-4)
    ];
}

现在如上所述在foreach循环中执行将为您提供像

这样的$ data
$data = [
    0 => [
        'name' => 'field1',
        'product' => 'field2',
        'policyno' => 'field3',
    ],
    1 =>  [
        'name' => 'field11',
        'product' => 'field22',
        'policyno' => 'field33',
    ],
    2 =>  [
        'name' => 'field111',
        'product' => 'field222',
        'policyno' => 'field333',
    ],
]

您可以将这些$数据传递给您的视图,就像您正在做的那样

$this->load->view('user/statements',$data);

然后在你看来你可以有像

这样的东西
<table>
    <?php foreach ($data as $dataRow):?>
        <tr>
            <td><?php echo $dataRow['name']?></td>
            <td><?php echo $dataRow['product']?></td>
            <td><?php echo $dataRow['policyno']?></td>
        </tr>
    <?php endforeach?> 
</table>

我认为这应该有效:)

现在使用一些精美的JavaScript插件并创建一个分页视图