2013-05-27 29 views
0

我有我的编辑companydata如窗体:姓名,国家,电话号码,等...如何编辑公司的编辑形式,除了1场笨

我也有一个形式加入企业我的数据库。在addform中我有一个上传功能,所以公司可以上传一个Logo。

我的问题是,当我想编辑公司时,我已经删除了上传功能。但是,当我提交徽标字段设置为0,因为我把它留空。

我该如何解决这个问题?

我想是这样我f(isset($this->input->post('logo'))){ some code }else{ 'Logo' => $this->input->post('Logo') };

我editform看起来是这样的:

<?= form_open('members/update/'.$id);?> 
<table> 
<br/> 
<b>NAW Gegevens</b> 
    <tr> 
    <td><?= form_label('Bedrijfsnaam:');?></td> 
    <td><?= form_input('Bedrijfsnaam', $info['Bedrijfsnaam']);?><small> (Spaties niet toegestaan)</small></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Adres:');?></td> 
    <td><?= form_input('Adres', $info['Adres']);?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Postcode:');?></td> 
    <td><?= form_input('Postcode', $info['Postcode']);?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Plaats:');?></td> 
    <td><?= form_input('Plaats', $info['Plaats']);?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Telefoonnummer:');?></td> 
    <td><?= form_input('Telefoonnummer', $info['Telefoonnummer']);?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Website:');?></td> 
    <td><?= form_input('Website', $info['Website']);?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Email:');?></td> 
    <td><?= form_input('Email', $info['Email']);?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Profiel:');?></td> 
    <td><?= form_textarea('Profiel', $info['Profiel']);?></td> 
    </tr> 

    <tr> 
    <td><?= form_label('Categorieen'); ?></td> 
    <td><?= form_dropdown('categorieen', $opties); ?></td> 
    </tr> 

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


</table> 
<?= form_close()?> 

我的控制器功能:

function updatebedrijven() 
{ 
    $dbres = $this->db->get('categorieen'); 
    $ddmenu = array(); 
    foreach ($dbres->result_array() as $tablerow) { 
     $ddmenu[$tablerow['idcategorieen']] = $tablerow['Categorie'];  
    } 
    $data['opties'] = $ddmenu; 
    $id = $this->uri->segment(3); 

    $data['info'] = $this->members_model->getbedrijf($id); 
    $data['id'] = $id; 
    $this->load->view('members/header'); 
    $this->load->view('members/editform', $data); 
    $this->load->view('members/footer');  
} 

function update() 
{ 
    $id = $this->uri->segment(3); 
    echo 'id: '.$id; 
    $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, $data); 
    $b = $this->session->userdata('idbedrijven'); 
    redirect("members/$b"); 
} 

我怎样才能让我的形式记住当前标识将字段留空?

回答

1

$this->input->post('logo')返回false如果该字段为空或不存在(请参阅http://ellislab.com/codeigniter/user-guide/libraries/input.html)。

由于您使用false值更新了徽标字段,因此它在数据库中被覆盖。请检查您是否设置此字段前场设置:'logo' => $this->input->post('logo')

你可以看看http://ellislab.com/codeigniter/user-guide/database/active_record.html#update

+0

我不知道怎么去解决它,这就是为什么我问的问题。我已阅读关于更新的文档。 –

+0

你使用哪个数据库? MySQL的? – 3x14159265

+0

是的。我正在使用mysql。 –