2013-04-22 61 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);?>

相关问题