php - 如何在编辑表单中编辑除 1 字段外的公司 codeigniter

标签 php mysql forms codeigniter upload

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

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

我的问题是,当我想编辑公司时,我删除了上传功能。但是当我提交时, Logo 字段设置为 0,因为我将其留空。

我该如何解决这个问题?

我尝试了类似 if(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()?>

我的 Controller 功能:

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");
}   

当我将该字段留空时,如何使表单记住当前 Logo ?

最佳答案

如果该字段为空或不存在,

$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

关于php - 如何在编辑表单中编辑除 1 字段外的公司 codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16772811/

相关文章:

C# 从类中获取值到 mainForm

echo 中的php if语句

php - 在 Symfony 中创建全局函数的最佳方法

php - GROUP_BY 仅在值等于时显示第一次出现

PHP/数据库 : Find out how many rows have content

php - 如何避免将 attr 应用于我选择字段的所有选项?

php - 将捕获的 GPS 坐标转换为 PHP 中的地址

php - Laravel 5.5 在按一个字段进行分组后获取索引键编号

php - MySQL 多个项目链接到一个 ID

MySQL 自动将字符串转换/转换为数字?