我正在开发一个用于添加工厂的小型 CRUD 系统。 但现在当我单击编辑并填写表单时(仍然为空,因为我没有设置 set_value) 然后单击“提交”,所有字段的值均为 0。
我认为这与 id 有关,但我不知道问题是什么。
我的编辑页面链接(使用 id 作为段(3))
<a href="<?= base_url();?>members/updatebedrijven/<?= $item->idbedrijven;?>">Edit</a>
我的 Controller 功能:
function updatebedrijven()
{
$this->load->view('members/header');
$this->load->view('members/editform');
$this->load->view('members/footer');
}
function update()
{
$this->members_model->updatebedrijf($id);
redirect('members/index');
}
我的模型函数:
function updatebedrijf($id)
{
$id = $this->uri->segment(3);
$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->db->where('idbedrijven', $id);
$this->db->update('bedrijven', $data);
}
我的表格:
<div id="cpanel">
<h2>Bedrijfsgegevens aanpassen</h2>
<?= br(1);?>
<?= validation_errors(); ?>
<?= form_open('members/update');?>
<table>
<b>NAW Gegevens</b>
<tr>
<td><?= form_label('Bedrijfsnaam:');?></td>
<td><?= form_input('Bedrijfsnaam');?></td>
</tr>
<tr>
<td><?= form_label('Adres:');?></td>
<td><?= form_input('Adres');?></td>
</tr>
<tr>
<td><?= form_label('Postcode:');?></td>
<td><?= form_input('Postcode');?></td>
</tr>
<tr>
<td><?= form_label('Plaats:');?></td>
<td><?= form_input('Plaats');?></td>
</tr>
<tr>
<td><?= form_label('Telefoonnummer:');?></td>
<td><?= form_input('Telefoonnummer');?></td>
</tr>
<tr>
<td><?= form_label('Website:');?></td>
<td><?= form_input('Website');?></td>
</tr>
<tr>
<td><?= form_label('Email:');?></td>
<td><?= form_input('Email');?></td>
</tr>
<tr>
<td><?= form_label('Profiel:');?></td>
<td><?= form_textarea('Profiel');?></td>
</tr>
<tr>
<td><?= form_submit('submit', 'Opslaan');?> <?= form_reset('reset', 'Reset');?></td>
</tr>
</table>
<?= form_close()?>
<br/>
<a href="<?= base_url();?>members/index"><< Terug</a>
</div>
最佳答案
首先,我们需要移动一些代码。您不应该访问 uri 或模型中的发布数据,因此让我们将其移至 Controller 。
Controller 功能:
function updatebedrijven()
{
// Access the uri in the update form and pass the value to the view
$data['id'] = $this->uri->segment(3);
$this->load->view('members/header');
$this->load->view('members/editform', $data);
$this->load->view('members/footer');
}
function update()
{
// Access the post data in the function the form is posted to (not the model)
$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);
redirect('members/index');
}
模型函数:
function updatebedrijf($id, $data)
{
$this->db->where('idbedrijven', $id);
$this->db->update('bedrijven', $data);
}
其次,您将表单发布到members/update
,当我们真正需要将其发布到 members/update/$id
时。因此,让我们稍微更改一下 View 代码并包含从 Controller 传递给它的 id 变量:
<?= form_open('members/update/'.$id);?>
关于php - 当尝试更新记录时,它给出的值为 0 - codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16141933/