0

我有一个用于编辑公司数据的表格,例如:姓名、国家、电话号码等...

我还有一个用于将公司添加到我的数据库的表格。在添加表单中,我有一个上传功能,因此公司可以上传徽标。

我的问题是,当我想编辑公司时,我删除了上传功能。但是当我提交时,徽标字段设置为 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");
}   

当我将字段留空时,如何让表单记住当前徽标?

4

1 回答 1

1

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

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

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

于 2013-05-27T12:25:05.423 回答