2013-06-19 3 views
0

У меня есть форма, которая просит пользователя ввести определенную информацию о своей кошке, тогда пользователь может отправить свою информацию, и она будет передана в базу данных. Я хочу, чтобы эта информация отражалась в представлении, поэтому она покажет каждого кота, который был отправлен в таблицу. Я думаю, что я правильно использую foreach, но таблица не заполняется тем, что я хочу.Как отобразить массив массивов с использованием ForEaches

Вот мой код с моей точки зрения:

<form action="/Anish/create" method="POST"> 
    <div> 
    <label>Name</label><input type="text" name="name"> 
    </div> 
    <div> 
    <label>Age</label><input type="text" name="age"> 
    </div> 
    <div> 
    <label>Gender</label><input type="text" name="gender"> 
    </div> 
    <div> 
    <label>Species</label><input type="text" name="species"> 
    </div> 
    <div> 
    <label>Eye Color</label><input type="text" name="eye_color"> 
    </div> 
    <div> 
    <label>Color</label><input type="text" name="color"> 
    </div> 
    <div> 
    <label>Description</label><input type="text" name="description"> 
    </div> 
    <div> 
    <label>marital status</label><input type="text" name="marital_status"> 
    </div> 
    <br> 
    <button type="submit" class="btn btn-block btn-primary span1">Add cat</button> 
</form> 
<br/> 
<br/> 
<br/><br/> 
<table border="1"> 
<tr> 
<td>Name</td> 
<td>Gender</td> 
<td>Age</td> 
<td>Species</td> 
<td>Eye Color</td> 
<td>Color</td> 
<td>Description</td> 
<td>Marital Status</td> 
</tr> 
<td> 
<?php 
    foreach ($data as $cats){ 
    echo ($cats); 
    } 
?> 
</td> 
</table> 

И вот мой код контроллера:

class Anish extends Public_Controller 
{ 
    public function __construct() 
    { 
    parent::__construct(); 
    // Load the required classes 
    $this->load->model('Anish_m'); 
    // $this->lang->load('anish'); 
    } 
    public function index() 
    { 
$data=array( 
'cats'=>$this->Anish_m->get(), 
); 
// var_dump($data);die; 
    $this->template 
     ->set('data', $data) 
     ->build('index', $data); 
    } 

    public function create() { 
    $Anish = array(
     'name' => $this->input->post('name'), 
     'age' => $this->input->post('age'), 
     'gender' => $this->input->post('gender'), 
     'species' => $this->input->post('species'), 
     'eye_color' => $this->input->post('eye_color'), 
     'color' => $this->input->post('color'), 
     'description' => $this->input->post('description'), 
     'marital_status' => $this->input->post('marital_status') 
    ); 
    $createCat=$this->Anish_m->create($Anish); 
     redirect('/Anish'); 
    } 
} 

Я признателен за любую помощь.

+0

Что находится в массиве данных? html или массивы кошек? –

+0

5 массивов кошек. В представлении все, что отображается, это слово «Array» Вот изображение выхода: http: //tinypic.com/r/33yjddu/5 –

ответ

1

Ваши ячейки не отражаются в новых строках.

заменить

<td> 
<?php 
    foreach ($data as $cats){ 
    echo ($cats); 
    } 
?> 
</td> 

с

<?php 
    foreach ($cats as $cat){ 
    echo '<tr>' 
    . '<td>' . $cat['name'] . '</td>' 
    // etc... 
    . '</tr>'; 
    } 
?> 

Точный язык зависит от того, что ваш массив данных.

+0

Спасибо за ваш ответ, но я получаю сообщение об ошибке что «имя» не определено. –

+0

Добро пожаловать. Отсюда последняя строка моего ответа. Я не знаю, как выглядит ваш массив данных. Если вы хотите включить var_dump массива данных, я могу настроить его для вас. –

0

А, я понял. Вот как это выглядит:

<form action="/Anish/create" method="POST"> 
    <div> 
    <label>Name</label><input type="text" name="name"> 
    </div> 
    <div> 
    <label>Age</label><input type="text" name="age"> 
    </div> 
    <div> 
    <label>Gender</label><input type="text" name="gender"> 
    </div> 
    <div> 
    <label>Species</label><input type="text" name="species"> 
    </div> 
    <div> 
    <label>Eye Color</label><input type="text" name="eye_color"> 
    </div> 
    <div> 
    <label>Color</label><input type="text" name="color"> 
    </div> 
    <div> 
    <label>Description</label><input type="text" name="description"> 
    </div> 
    <div> 
    <label>marital status</label><input type="text" name="marital_status"> 
    </div> 
    <br> 
    <button type="submit" class="btn btn-block btn-primary span1">Add cat</button> 
</form> 
<br/> 
<br/> 
<br/><br/> 
<table border="1"> 
<tr> 
<td>Name</td> 
<td>Gender</td> 
<td>Age</td> 
<td>Species</td> 
<td>Eye Color</td> 
<td>Color</td> 
<td>Description</td> 
<td>Marital Status</td> 
</tr> 
<td><?php foreach ($cats as $cat):?> 
    <?php echo ($cat['name']);?><br/> 
<?php endforeach;?></td> 
<td><?php foreach ($cats as $cat):?> 
    <?php echo ($cat['gender']);?><br/> 
<?php endforeach;?></td> 
<td><?php foreach ($cats as $cat):?> 
    <?php echo ($cat['age']);?><br/> 
<?php endforeach;?></td> 
<td><?php foreach ($cats as $cat):?> 
    <?php echo ($cat['species']);?><br/> 
<?php endforeach;?></td> 
<td><?php foreach ($cats as $cat):?> 
    <?php echo ($cat['eye_color']);?><br/> 
<?php endforeach;?></td> 
<td><?php foreach ($cats as $cat):?> 
    <?php echo ($cat['color']);?><br/> 
<?php endforeach;?></td> 
<td><?php foreach ($cats as $cat):?> 
    <?php echo ($cat['description']);?><br/> 
<?php endforeach;?></td> 
<td><?php foreach ($cats as $cat):?> 
    <?php echo ($cat['marital_status']);?><br/> 
<?php endforeach;?></td> 
</table> 
+0

Вы уверены, что получили это право @Ralph. я все еще вижу, что вы пропускаете теги '', и вы просто эхом отдаете все данные в одну ячейку для каждого атрибута. –

Смежные вопросы