2013-04-22 48 views
0

我正在一個小型crud系統添加工廠。 但現在當我點擊編輯並填寫表格(仍然是空的,因爲我沒有設置set_value) 然後單擊提交它爲所有字段提供值爲0。當試圖更新記錄時,它給出的值爲0 - codeigniter

我認爲它與身份證有關,但我不知道問題是什麼。

我到編輯頁面鏈接(使用id作爲段(3))

<a href="<?= base_url();?>members/updatebedrijven/<?= $item->idbedrijven;?>">Edit</a> 

我的控制器功能:

function updatebedrijven() 
{ 
    $this->load->view('members/header'); 
    $this->load->view('members/editform'); 
    $this->load->view('members/footer'); 
} 

function update() 
{ 
    $this->members_model->updatebedrijf($id); 
    redirect('members/index'); 
} 

我的模型功能:

function updatebedrijf($id) 
{ 
    $id = $this->uri->segment(3); 
    $data = array(
     'Bedrijfsnaam' => $this->input->post('Bedrijfsnaam'), 
     'Postcode' => $this->input->post('Postcode'), 
     'Plaats' => $this->input->post('Plaats'), 
     'Telefoonnummer' => $this->input->post('Telefoonnummer'), 
     'Email' => $this->input->post('Email'), 
     'Website' => $this->input->post('Website'), 
     'Profiel' => $this->input->post('Profiel'), 
     'Adres' => $this->input->post('Adres'), 
     'logo' => $this->input->post('logo') 
    ); 

    $this->db->where('idbedrijven', $id); 
    $this->db->update('bedrijven', $data); 
} 

我的表格:

<div id="cpanel"> 
<h2>Bedrijfsgegevens aanpassen</h2> 
<?= br(1);?> 
<?= validation_errors(); ?> 
<?= form_open('members/update');?> 
<table> 
<b>NAW Gegevens</b> 
    <tr> 
    <td><?= form_label('Bedrijfsnaam:');?></td> 
    <td><?= form_input('Bedrijfsnaam');?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Adres:');?></td> 
    <td><?= form_input('Adres');?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Postcode:');?></td> 
    <td><?= form_input('Postcode');?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Plaats:');?></td> 
    <td><?= form_input('Plaats');?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Telefoonnummer:');?></td> 
    <td><?= form_input('Telefoonnummer');?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Website:');?></td> 
    <td><?= form_input('Website');?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Email:');?></td> 
    <td><?= form_input('Email');?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Profiel:');?></td> 
    <td><?= form_textarea('Profiel');?></td> 
    </tr> 

    <tr> 
    <td><?= form_submit('submit', 'Opslaan');?> <?= form_reset('reset', 'Reset');?></td> 
    </tr> 


</table> 
<?= form_close()?> 
<br/> 
<a href="<?= base_url();?>members/index"><< Terug</a> 

</div> 
+0

'$這 - > members_model-> updatebedrijf($ ID);''中功能更新這一行()'在控制器....從哪裏'$ id'來了? – itachi 2013-04-22 08:05:05

+0

可能是因爲您試圖訪問模型中的發佈數據。您應該訪問控制器中的發佈數據,然後將其傳遞給模型。 – Jeemusu 2013-04-22 08:05:14

+0

所以@Jeemusu你能舉一個例子來說明怎麼做? – 2013-04-22 08:07:01

回答

1

首先,我們需要移動一些代碼。您不應該訪問模型中的uri或發佈數據,因此可以將其移至控制器。

控制器功能:

function updatebedrijven() 
{ 
    // Access the uri in the update form and pass the value to the view 
    $data['id'] = $this->uri->segment(3); 

    $this->load->view('members/header'); 
    $this->load->view('members/editform', $data); 
    $this->load->view('members/footer'); 
} 

function update() 
{ 

    // Access the post data in the function the form is posted to (not the model) 
    $data = array(
     'Bedrijfsnaam' => $this->input->post('Bedrijfsnaam'), 
     'Postcode' => $this->input->post('Postcode'), 
     'Plaats' => $this->input->post('Plaats'), 
     'Telefoonnummer' => $this->input->post('Telefoonnummer'), 
     'Email' => $this->input->post('Email'), 
     'Website' => $this->input->post('Website'), 
     'Profiel' => $this->input->post('Profiel'), 
     'Adres' => $this->input->post('Adres'), 
     'logo' => $this->input->post('logo') 
    ); 
    $this->members_model->updatebedrijf($id); 
    redirect('members/index'); 
} 

型號功能:

function updatebedrijf($id, $data) 
{ 
    $this->db->where('idbedrijven', $id); 
    $this->db->update('bedrijven', $data); 
} 

其次,你的發佈形式members/update,當我們需要真正張貼到members/update/$id。因此,讓改變視圖代碼一點,包括id變量傳遞給它從控制器:

<?= form_open('members/update/'.$id);?>

相關問題