我有一个用于编辑公司数据的表格,例如:姓名,国家,电话号码等......
我还有一个表单,用于将公司添加到我的数据库中。在addform中,我有一个上传功能,因此公司可以上传徽标。
我的问题是,当我想编辑公司时,我删除了上传功能。但是当我提交徽标字段时设置为0,因为我把它留空了。
我怎么解决这个问题?
我试过像f(isset($this->input->post('logo'))){ some code }else{ 'Logo' => $this->input->post('Logo') };
我的编辑形式如下所示:
<?= 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");
}
当我将字段留空时,如何让表单记住当前的徽标?
答案 0 :(得分: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