【问题标题】:Codeigniter - passing multiple data arrays to a view?Codeigniter - 将多个数据数组传递给视图?
【发布时间】:2010-06-24 13:31:34
【问题描述】:

我正在尝试使用位置列表填充活动页面上的下拉菜单。

我想做的是从位置表中检索所有名称,将它们存储在我的 event.php 控制器中的数组中,将其传递给视图,然后在下拉菜单中列出所有位置。

这是我的控制器中用于检索位置的循环..

$result = $this->locationModel->get_locations_list();
$arr[] = '';
foreach ($result as $val)
    $arr[$val->id] = $val->name;

我已经将一个名为 $data 的变量传递给我的视图,就像这样 - $this->template->load('admin/template', 'admin/eventEdit', $data);

我尝试在上面的行中传递 $arr 变量和 $data 数组,但这会阻止视图呈现。

请有人指导我如何将存储在 $arr 变量中的信息与 $data 变量一起传递给我的视图。

谢谢

谢谢 丹

新代码

控制器

foreach ($result as $val){ $arr[$val->id] = $val->id; } 
$data['navarr'] = $arr; 

查看 <?php foreach($navarr as $value) { $html .= '<option value="'.$value['id'].'">'.$value['name'].'</option>'; } echo $html; ?>

【问题讨论】:

    标签: php codeigniter arrays drop-down-menu


    【解决方案1】:

    你需要说

    $data['navarr'] = $arr;
    

    然后在视图中,您将有一个名为 navarr 的变量供您使用,该变量将是数组。

    将控制器代码更改为

    // I assume you want $val->id and $val->name
    foreach ($result as $val){ $arr[$val->id] = $val->name; } 
    $data['navarr'] = $arr; 
    

    假设我正确阅读了您的代码,您需要从数组中提取键/值对,如下所示:

    <?php
        foreach($navarr as $key => $value)
        {
            ?>
                <option value="<?php echo $key; ?>"><?php echo $value; ?></option>
            <?php
        }
    ?>
    

    【讨论】:

    • 谢谢乔希,这对我有帮助,现在我坚持做别的事情。在我的表中,我有 3 条记录 1 The Ritz Manchester 2 Manor Park 12 test 现在已填充下拉列表,但仅使用 id 我如何也检索名称并将其设置为值?此外,第三个选项目前仅读取“1”,而不是 12?奇怪的。这是我的代码.. Controller foreach ($result as $val){ $arr[$val->id] = $val->id; } $data['navarr'] = $arr;查看 '.$value['name'].''; } 回声 $html; ?>
    • @Dan C:这不是礼仪问题,只是在 cmets 中很难阅读。 :)
    • @Dan C:我认为您在控制器代码中有错字,请更新并查看是否有效。还要注意我为提取 id(选项value)和名称而编写的代码。
    • 感谢乔希的所有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 2011-07-26
    相关资源
    最近更新 更多