2016-06-12 96 views
0

我想多維數組我的看法,然後使用這個數組構建形式鑑於解析陣列數據笨:在一個循環中

這是我在我的控制器已經

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取得不知道我該怎麼做,請幫助。

回答

2

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/>'; 
    } 
} 

注意我做了一些調整,以您的初始屬性陣列,使其工作,但你仍然需要改善其結構,對所有項目等添加唯一名稱

+0

這似乎不錯,但問題是將這些數據傳遞給表單我想從中生成表單並且無法找到實現它的方式 – Sikander

+0

您是否使用純html或CI的表單助手? – trajchevska

+0

我正在使用窗體幫手 – Sikander