2014-03-26 48 views
0
Question Updated: 

我正在使用codeigniter,我遇到的問題是,如果數組包含值,那麼表單元素將顯示。如果數組爲空,則整個表單將不顯示。所以想象這是一個人選擇編輯記錄的編輯表單。並可以說出於何種原因,正在編輯的記錄沒有記錄,它完全是空的。還可以說ID必須是可見的並且可編輯,而不管它是否爲空。所以如果記錄是空的,整個表單元素將不會顯示。所以我想要做的是讓它顯示,不管有沒有記錄。即使迭代數組爲空,如何顯示錶單字段?

<?php 

//controler 

public function show() 
{ 
    $this->load->model('my_model'); 

    $data = array(
     'data' => $this->my_model->getdata(); 
    ); 
    $this->load->view('somepage', $data); 
} 



//model 
public function my_model() 
{ 
    $q = $this->db->get_where('some query', array('id' => $id)); 
    if($q->num_rows() == 1) 
    { 
     foreach($q->result() as $row) 
     { 
      $rows[] = $row; 
     } 
     return $rows; 
    } 
    else 
    { 
     return array(); 
    } 
} 





//view 
//note: this will only work if the array has data, otherwise everything between the foreach statement wont show. 
<?php foreach($data as $row) : ?> 

<input type="text" name="something" value="<?=$row->column1;?>"> 
<input type="text" name="something" value="<?=$row->column2;?>"> 
<input type="text" name="something" value="<?=$row->column3;?>"> 
<input type="text" name="something" value="<?=$row->column4;?>"> 
<input type="text" name="something" value="<?=$row->column5;?>"> 


<?php endforeach; ?> 

回答

0
在你看來

<?php 
if (!empty($data)) { 
    var_dump($data); 
} else { 
    //print out nothing 
} 
?> 

或者你可以做以下

<p><?= (!empty($data)) ? $data : "" ?></p> 
+0

它幾乎同樣的事情,我一直在做,但else語句什麼也不做爲此不會顯示記錄。我已經修改了我的問題,以表明您希望我正在嘗試待辦事項。 –

+0

請在這裏發表一個看法,所以問題很清楚 – Kyslik

+0

我查詢的表應該已經作爲單獨的表連接在一起,並且其中一個表沒有參考ID並且是完全空的。我知道這一點,但試圖看看我能否做到這一點。因爲我認爲這是一個糟糕的主意,我最初只是將參考ID插入到空表中,所以當它加入它們時,我會得到一個輸出。謝謝你的幫助 :) –