Php Codeigniter更新不';行不通
我的更新无法正常工作。删除、查看和添加工作精 这是我的extraoptie_型号:Php Codeigniter更新不';行不通,php,database,codeigniter,Php,Database,Codeigniter,我的更新无法正常工作。删除、查看和添加工作精 这是我的extraoptie_型号: function update($id, $extraOptie) { $this->db->where('id', $id); $this->db->update('extraOptie', $extraOptie); } 我的控制器: function update($id) { // Check admin if not Acces Denied
function update($id, $extraOptie) {
$this->db->where('id', $id);
$this->db->update('extraOptie', $extraOptie);
}
我的控制器:
function update($id) {
// Check admin if not Acces Denied
$gebruiker = $this->session->userdata('gebruiker');
if ($gebruiker->accountLevel != "admin") {
$data['title'] = 'Acces Denied';
$partials = array('header' => 'main_header', 'content' => 'admin_noacces', 'footer' => 'main_footer');
$this->template->load('main_master', $partials, $data);
} else {
// prefill form values
$extraOptie = $this->extraoptie_model->get($id);
$data['id'] = $id;
$data['beschrijving'] = $extraOptie->beschrijving;
$data['actuelePrijs'] = $extraOptie->actuelePrijs;
$data['soort'] = $extraOptie->soort;
$data['aantalGangen'] = $extraOptie->aantalGangen;
$data['tabelNaam'] = $extraOptie->tabelNaam;
// set common properties
$data['title'] = 'Extra optie update';
$data['message'] = '';
$data['action'] = site_url('admin/extraoptie/updateExtraOptie/');
// load view
$partials = array('header' => 'main_header', 'content' => 'admin_extraoptieedit', 'footer' => 'main_footer');
$this->template->load('main_master', $partials, $data);
}
}
function updateExtraOptie() {
// Check admin if not Acces Denied
$gebruiker = $this->session->userdata('gebruiker');
if ($gebruiker->accountLevel != "admin") {
$data['title'] = 'Acces Denied';
$partials = array('header' => 'main_header', 'content' => 'admin_noacces', 'footer' => 'main_footer');
$this->template->load('main_master', $partials, $data);
} else {
// set common properties
$data['title'] = 'Update extra optie';
$data['action'] = site_url('admin/extraoptie/updateExtraOptie');
// save data
$id = $this->input->post('id');
$extraOptie = array('beschrijving' => $this->input->post('beschrijving'),
'actuelePrijs' => $this->input->post('actuelePrijs'),
'soort' => $this->input->post('soort'),
'aantalGangen' => $this->input->post('aantalGangen'),
'tabelNaam' => $this->input->post('tabelNaam'));
if ($extraOptie['aantalGangen'] == '') {
$extraOptie['aantalGangen'] = null;
}
if ($extraOptie['tabelNaam'] == '') {
$extraOptie['tabelNaam'] = null;
}
$this->extraoptie_model->update($id, $extraOptie);
// set user message
$data['message'] = '<div class="success">update success</div>';
// redirect to index
redirect('admin/extraoptie/index', 'refresh');
}
}
函数更新($id){
//如果未拒绝访问,请检查管理员
$gebruiker=$this->session->userdata('gebruiker');
如果($gebruiker->accountLevel!=“admin”){
$data['title']=“拒绝访问”;
$partials=array('header'=>'main\u header','content'=>'admin\u noacces','footer'=>'main\u footer');
$this->template->load('main_master',$partials,$data);
}否则{
//预填充表单值
$extraOptie=$this->extraOptie\u model->get($id);
$data['id']=$id;
$data['beschrijving']=$extraOptie->beschrijving;
$data['actuelePrijs']=$extraOptie->actuelePrijs;
$data['soort']=$extraOptie->soort;
$data['aantalGangen']=$extraOptie->aantalGangen;
$data['tabelNaam']=$extraOptie->tabelNaam;
//设置公共属性
$data['title']='Extra optie update';
$data['message']='';
$data['action']=site_url('admin/extraoptie/updateExtraOptie/');
//负载视图
$partials=array('header'=>'main\u header','content'=>'admin\u extraoptionedit','footer'=>'main\u footer');
$this->template->load('main_master',$partials,$data);
}
}
函数updateExtraOptie(){
//如果未拒绝访问,请检查管理员
$gebruiker=$this->session->userdata('gebruiker');
如果($gebruiker->accountLevel!=“admin”){
$data['title']=“拒绝访问”;
$partials=array('header'=>'main\u header','content'=>'admin\u noacces','footer'=>'main\u footer');
$this->template->load('main_master',$partials,$data);
}否则{
//设置公共属性
$data['title']='Update extra optie';
$data['action']=站点url('admin/extraoptie/updateExtraOptie');
//保存数据
$id=$this->input->post('id');
$extraOptie=array('beschrijving'=>$this->input->post('beschrijving'),
'actuelePrijs'=>this->input->post('actuelePrijs'),
'soort'=>this->input->post('soort'),
'aantalGangen'=>this->input->post('aantalGangen'),
'tabelNaam'=>this->input->post('tabelNaam');
如果($extraOptie['aantalGangen']=''){
$extraOptie['aantalGangen']=null;
}
如果($extraOptie['tabelNaam']=''){
$extraOptie['tabelNaam']=null;
}
$this->extraoptie\u model->update($id,$extraoptie);
//设置用户消息
$data['message']=“更新成功”;
//重定向到索引
重定向('admin/extraoptie/index','refresh');
}
}
我的看法是:
<table class='centered text'>
<form method="post" action="<?php echo $action; ?>">
<?php
$hidden = array('id' => $id);
form_hidden($hidden);
?>
<tr>
<td><?php echo form_label('Beschrijving:', 'beschrijving'); ?></td>
<td><?php echo form_textarea(array('name' => 'beschrijving', 'id' => 'beschrijving', 'value' => $beschrijving, 'cols' => '30', 'rows' => '5')); ?></td>
</tr>
<tr>
<td><?php echo form_label('Prijs:', 'prijs'); ?></td>
<td><?php echo form_input(array('name' => 'actuelePrijs', 'id' => 'actuelePrijs', 'value' => $actuelePrijs, 'size' => '10')); ?></td>
</tr>
<tr>
<td><?php echo form_label('Soort:', 'soort'); ?></td>
<td><?php echo form_input(array('name' => 'soort', 'id' => 'soort', 'value' => $soort, 'size' => '30')); ?></td>
</tr>
<tr>
<td><?php echo form_label('Aantal gangen:', 'aantalGangen'); ?></td>
<td><?php echo form_input(array('name' => 'aantalGangen', 'id' => 'aantalGangen', 'value' => $aantalGangen, 'size' => '10')); ?></td>
</tr>
<tr>
<td><?php echo form_label('Tabel naam:', 'tabelNaam'); ?></td>
<td><?php echo form_input(array('name' => 'tabelNaam', 'id' => 'tabelNaam', 'value' => $tabelNaam, 'size' => '30')); ?></td>
</tr>
<tr>
<td colspan='2' class='center'>
<?php echo form_submit('submit', 'Opslaan', 'id="opslaan"');; ?>
<?php echo form_button('annuleer', 'Annuleren', 'id="annuleer"'); ?>
<?php form_close(); ?>
</td>
</tr>
</table>
问题可能来自以下事实:
您有一个php表单_close();
但是没有php表单_open();
不确定CI在没有打开的情况下对关闭有何反应。是否启用了CSRF保护?如果是这样,您将需要使用form_open(),正如steve所说,或者使用csrf令牌添加一个隐藏输入,例如:
<input type="hidden" name="<?php echo $this->security->get_csrf_hash();?>" value="<?php echo $this->security->get_csrf_token_name();?>"/>
谢谢你们两位的快速回复
在和朋友一起盯着代码看了几个小时后,我发现了这个错误
问题是我没有回显表单_hidden($hidden),因此没有向更新模型传递id
<table class='centered text'>
<form method="post" action="<?php echo $action; ?>">
<?php
$hidden = array('id' => $id);
form_hidden($hidden);
?>
<tr>
<table class='centered text'>
<form method="post" action="<?php echo $action; ?>">
<?php
$hidden = array('id' => $id);
echo form_hidden($hidden);
?>
<tr>