我不确定我在哪里出错但是请耐心等待,这是点击保存按钮后出现的网址,http://localhost/gabbyville/tenant/contact/update/contact/save
所有想要发生的,就是更改现有数据数据库中的行。有人可以帮帮我吗?
这是控制器
public function update($id)
{
$contact['contact'] = $this->Contacts_model->get_all();
$contacts['contacts'] = $this->Contacts_model->get_by_id($id);
$data['content'] = $this->load->view("tenant/contacts",$contacts,TRUE);
$data['content'] = $this->load->view("tenant/contacts",$contact,TRUE);
$data['curpage'] = $this->curpage;
$this->load->view('template1',$data);
}
public function save($id)
{
$data = array(
'first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name'),
'postal_address' => $this->input->post('postal_address'),
'company_name' => $this->input->post('company_name'),
'company_url' => $this->input->post('company_url'),
'industry' => $this->input->post('industry'),
'phone_number' => $this->input->post('phone_number'),
);
$this->Contacts_model->update($this->uri->segment(), $data);
redirect($this->view_folder.$this->curpage, 'refresh');
}
这是模型
function get_by_id($id)
{
$this->db->where($this->id, $id);
return $this->db->get($this->table)->row();
}
function update($id, $data)
{
$this->db->where($this->id, $id);
$this->db->update($this->table, $data);
}
这是我视图中的表单
<form action="contact/save" method="post">
<div class="row ">
<input type="text" class="form-control mBottom2 mTop2" name="first_name" placeholder="First Name" value="<?php echo $contacts->first_name?>">
<input type="text" class="form-control mBottom2" name="last_name" placeholder="Last Name" value="<?php echo $contacts->last_name?>">
<input type="text" class="form-control mBottom2" name="postal_address" placeholder="Postal Address" value="<?php echo $contacts->postal_address?>">
<input type="text" class="form-control mBottom2" name="company_name" placeholder="Company Name" value="<?php echo $contacts->company_name?>">
<input type="text" class="form-control mBottom2" name="company_url" placeholder="Company URL" value="<?php echo $contacts->company_url?>">
<input type="text" class="form-control mBottom2" name="industry" placeholder="Industry" value="<?php echo $contacts->industry?>">
<ul class="row contact">
<li class="mBottom2 clearfix">
<input type="text" class="form-control pull-left" name="phone_number" placeholder="Phone Number" value="<?php echo $contacts->phone_number?>">
<div class="i-checks pull-left">
<label><input type="checkbox"><i></i></label>
</div>
</li>
<li class="mBottom2 clearfix">
<input type="text" class="form-control pull-left" placeholder="Enter New Phone Number">
<div class="i-checks pull-left">
<label><input type="checkbox"><i></i></label>
</div>
<a><i class="fa fa-trash-o"></i></a>
</li>
<li class="">
<button type="submit" class="btn btn-w-m btn-primary">Add New</button>
</li>
</ul>
</form>
<ul class="row contact">
<li class="mBottom2 clearfix">
<input type="text" class="form-control pull-left" placeholder="Email">
<div class="i-checks pull-left">
<label><input type="checkbox"><i></i></label>
</div>
</li>
<li class="mBottom2 clearfix">
<input type="text" class="form-control pull-left" placeholder="Enter New Email">
<div class="i-checks pull-left">
<label><input type="checkbox"><i></i></label>
</div>
<a><i class="fa fa-trash-o"></i></a>
</li>
<li class="mBottom2">
<button type="button" class="btn btn-w-m btn-primary">Add New</button>
</li>
</ul>
</div>
答案 0 :(得分:0)
仅使用一个模型更新数据或将数据插入表中:
你的模型应该是这样的:
public function save($data = array())
{
if(isset($data['id']) && ((int)$data['id'] > 0))
{
$this->db->where('id', (int)$data['id']);
$this->db->update('table_name', $data);
$id = $data['id'];
}
else
{
$this->db->insert('table_name', $data);
$id = $this->db->insert_id();
}
return $id;
}
并将值从控制器发送到模型,如下所示:
$data = array(
'id' => ($this->input->post('id')) ? $this->input->post('id') : 0,
'first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name'),
'postal_address' => $this->input->post('postal_address'),
'company_name' => $this->input->post('company_name'),
'company_url' => $this->input->post('company_url'),
'industry' => $this->input->post('industry'),
'phone_number' => $this->input->post('phone_number'),
);