2013-09-24 142 views
0

我在數據庫中的每行(其中id = $ id)回顯2個輸入字段(2個db列),每行數據位於輸入字段內。管理員用戶可以更改輸入字段內的數據並單擊更新。使用foreach循環更新具有相同ID的多行

目前,當點擊更新按鈕時,它會更新行(其中id = $ id),但它會使用第一個輸入字段的輸入數據更新每一行,而不是更新每個輸入字段的輸入數據。預先感謝您的幫助。

觀點:

<form action='<?= site_url("admin/do_edit_page"); ?>' method='POST'> 
    <?php foreach($link_data as $row) : ?> 
     Link:<br /> 
     <input type='text' name='page_link_title' value='<?= $row->link_title; ?>'> 
     <input type='text' name='page_link_sub_title' value='<?= $row->link; ?>'><br /> 
    <?php endforeach; ?> 

     <input type='submit' name='update_site' value='Update'> 
</form> 

控制器:

public function do_edit_page(){ 
    $id = $this->input->post('page_id', TRUE); 
    $this->content_model->update_links($id); 
} 

型號:

public function update_links($id){ 
    foreach($_POST as $update_rows){ 
     $update_rows = array(
      array(
       'page_id' => $id, 
       'link_title' => $this->input->post('page_link_title', TRUE), 
       'link' => $this->input->post('page_link_sub_title', TRUE) 
      ) 
     ); 
     $this->db->update_batch('content_links', $update_rows, 'page_id'); 
    } 
} 
+0

,其中來自你所得到的$ id = $這個 - >輸入 - >後( 'PAGE_ID',TRUE);在控制器中。 – ABorty

回答

0

你必須移動foreach循環之間的形式標記,以便它可以提交的數據單排。像這樣

<?php foreach($link_data as $row) : ?> 
    <form action='<?= site_url("admin/do_edit_page"); ?>' method='POST'> 
    Link:<br /> 
    <input type='text' name='page_link_title' value='<?= $row->link_title; ?>'> 
    <input type='text' name='page_link_sub_title' value='<?= $row->link; ?>'><br /> 
    <input type='submit' name='update_site' value='Update'> 
    </form> 
<?php endforeach; ?>