如何编辑公司的编辑形式除了1字段codeigniter

时间:2013-05-27 12:03:04

标签: php mysql forms codeigniter upload

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

我还有一个表单,用于将公司添加到我的数据库中。在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");
}   

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

1 个答案:

答案 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