繁体   English   中英

Codeigniter:循环分析视图中的数组数据

[英]Codeigniter: Parsing array data in view in a loop

我想在我的视图中使用多维数组,然后使用此数组构建表单

这就是我在控制器中的内容

function signin(){
    $attributes = array(
        'name'  =>  
        array(
            'name'        =>    'name',
            'type'        =>    'text',
            'placeholder'     =>     '' ,
            'value'       =>    'value'
            ),
        'password'                =>    
            array(
            'name'        =>    'name',
            'type'        =>    'password',
            'placeholder' =>      '',

            ),
        'gender' => 
            array(
            'name'        =>    'name',
            'type'        =>    'select',
                        'value'=>       
                            array(
                 'male','female'
            ),
        ),

        'usertpye'=>array(
            'type'                =>      'radio',
            'seller'          =>    'seller',
            'buyer'       =>    'buyer'
        ),
        'upload'=>array(
            'type'            =>      'file',
            'name'        =>    'file'
        ),

        'submit'=>array(
            'type'        =>    'submit',
            'name'        =>    'submit',
            'value'       =>    'submit'

        )

    );
        $this->load->view('login',$attributes);

}

在我看来,我登录才能访问这些项目,如$名称$密码 ,但我想在一个loop.really不知道我怎么能做到这一点请大家帮忙去取。

加载函数接收一个数组,该键然后将其解析为视图中的变量。 因此,您将获得$ name,$ password等变量。只需在调用load函数之前添加另一层,例如:

$data['attributes'] = $attributes;

然后,在加载视图时

$this->load->view('login',$data); 

这是经过一些调整的数组:

$attributes = array(
    'name'  =>  
    array(
        'name'        =>    'name',
        'type'        =>    'text',
        'placeholder' =>     '' ,
        'value'       =>    'value'
        ),
    'password'                =>    
        array(
        'name'        =>    'name',
        'type'        =>    'password',
        'placeholder' =>    '',

        ),
    'gender' => 
        array(
        'name'    =>    'name',
        'type'    =>    'select',
        'options' =>     array(
             'male'   => 'Male',
             'female' => 'Female'
        ),
    ),

    'usertpye'=>array(
        'type'   =>     'radio',
        'values' => array(
            'seller' =>    'seller',
            'buyer'  =>    'buyer'
        )
    ),
    'upload'=>array(
        'type' =>      'file',
        'name' =>    'file'
    ),

    'submit'=>array(
        'type'        =>    'submit',
        'name'        =>    'submit',
        'value'       =>    'submit'

    )
);

这就是CI的表单助手的外观(它将在视图中显示,请记住首先将助手加载到控制器中):

echo form_open('email/send');
foreach($attributes as $key=>$attribute) {
    echo form_label($key).'<br/>';
    if($attribute['type'] == 'select') {
        echo form_dropdown($attribute['name'],$attribute['options']).'<br/>';
    } elseif($attribute['type'] == 'radio') {
        foreach ($attribute['values'] as $value) {
            echo form_label($value);
            echo form_radio(array('name' => $key, 'value' => $value)).'<br/>';
        }
    } else {
        echo form_input($attribute).'<br/>';
    }
}

注意,我对您的初始属性数组进行了一些调整以使其工作,但是您仍然需要改进其结构,为所有项目添加唯一的名称,等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM