'How to edit Records using CodeIgniter
how do i edit my records?i keep getting to wrong pages.. thanks in advance really need help i based my code in my delete function i got from yesterday but i have no luck doing so in edit controller
function update()
{
$booking=array(
'name'=>$this->input->post('name'),
'nationality'=>$this->input->post('nationality'),
'number_of_guest'=>$this->input->post('number_of_guest'),
'date'=>$this->input->post('date'),
'package'=>$this->input->post('package'),
'request'=>$this->input->post('request')
);
$this->site_model->update_record($booking);
$this->edit();
}
site_model
function update_record($booking)
{
$this->db->where('id', 1);
$this->db->update('booking', $booking);
}
edit.php
<div id="bgbp"></div>
<div id="bp">
<h2 class="nb">Update</h2>
<?php echo form_open('site/update');?>
<div id="nems">
<p>
<label for="name"> Guest name(s): </label>
<input type="text" name="name" id="name" placeholder="Name(s)"/>
</p>
</div>
<div id="nat">
<p>
<label for="nationality">Nationality: </label>
<input type="text" name="nationality" id="nationality" placeholder="Nationality"/>
</p>
</div>
<div id="nog">
<p>
<label for="number_of_guest"> Number of Guest:</label>
<input type="number" name="number_of_guest" id="number_of_guest" placeholder="Number of Guest"/>
</p>
</div>
<div id="doa">
<p>
<label for="date"> Date of Arrival:</label>
<input type="date" name="date" id="date"/>
</p>
</div>
<div id="mainselection">
<select name="package" id="input7">
<option value="" style="display:none">Choose Package to avail</option>
<option value="Package A. Half - day City Tour">Package A. Half - day City Tour</option>
...
<option value="Package B. Honda Bay Island Hopping">Package B. Honda Bay Island Hopping</option>
<option value="Package C. St. Paul's Subterranean River National Park or Underground River">Package C. St. Paul's Subterranean River National Park or Underground River</option>
</select>
</div>
<div id="or">
<p>
<label for="request"> Other Request: </label>
<input type="comment" name="request" id="request" placeholder="Other Request"/>
</p>
</div>
<div id="sub">
<p>
<input type="submit" value="Submit" onclick="msg()" />
</p>
</div>
<?php echo form_close();?>
my view page..(whre my edit and delete button show)
<?php
$this->table->set_heading("Name","Nationality","Number of Guest","Date of Arrival","Package","Other Request","Delete Record","Edit");
$qry = $this->db->get('booking');
foreach ($qry->result() as $row) {
$this->table->add_row($row->name,$row->nationality,$row->number_of_guest,$row->date,$row->package,$row->request,anchor('site/delete/'.$row->id, 'Del'),anchor('site/update/'.$row->id, 'edit'));
}
echo $this->table->generate();
Solution 1:[1]
In codeignitor, you can update any record by giving a reference to an existing record in the table.
$this->db->update('booking', $booking);
booking
should be the table you want to update and $booking
must be an array with key/value pair of field name and values.
check if the table's (booking
) field names are same as keys in $booking
!!
Solution 2:[2]
you can also try in this way.
function update()
{
$booking=array(
'name'=>$this->input->post('name'),
'nationality'=>$this->input->post('nationality'),
'number_of_guest'=>$this->input->post('number_of_guest'),
'date'=>$this->input->post('date'),
'package'=>$this->input->post('package'),
'request'=>$this->input->post('request')
);
$this->db->where('id', 1);
$this->db->update('booking', $booking);
}
--------- update---
` function update()
{
$booking=array(
'name'=>$this->input->post('name'),
'nationality'=>$this->input->post('nationality'),
'number_of_guest'=>$this->input->post('number_of_guest'),
'date'=>$this->input->post('date'),
'package'=>$this->input->post('package'),
'request'=>$this->input->post('request')
);
$this->db->where('<primary_key>', <pri_key_value>);
$error = $this->db->update('<table_name>', $booking);`,
Please run that and paste what you are getting in $error
Solution 3:[3]
try this code... This is my code,you can change according to your requirement.
View
<?php $id = "1" ?>
<?php echo form_open_multipart("testimonials_controller/testimonials_edit/$id");?>
<table width="500" class="table" cellpadding="0" cellspacing="2" align="center">
<tr>
<td width="130" align="left">Author: </td>
<td><?php echo form_input($title); ?></td>
</tr>
<tr>
<td width="130" align="left">Content: </td>
<td><?php echo form_textarea($content); ?></td>
<script type="text/javascript">
CKEDITOR.replace( 'contentbox' );
</script>
</tr>
<tr>
<td> </td>
<td><?php echo form_submit('submit', 'Submit');?>
</td>
</tr>
</table>
<?php echo form_close();?>
Model
function updatetestimonials($id, $data)
{
$this->db->where('id', $id);
$this->db->update('testimonials', $data);
}
Controller
function testimonials_edit($id)
{
$this->load->helper('form');
$this->load->helper('html');
$this->load->library('form_validation');
$this->load->model('testimonials_model');
$this->data=$this->testimonials_model->general();
$testimonials = $this->testimonials_model->get_testimonials($id);
$this->data['title'] = 'Edit Testimonial';
//validate form input
$this->form_validation->set_rules('title', 'Author', 'required|xss_clean');
$this->form_validation->set_rules('contentbox', 'content', 'required|xss_clean');
if (isset($_POST) && !empty($_POST))
{
if ($this->form_validation->run() === true)
{
$data = array(
'title'=>$this->input->post('title'),
'content'=> $this->input->post('contentbox'),
);
$this->testimonials_model->updatetestimonials($id, $data);
$this->session->set_flashdata('message', "<p>Testimonial is updated successfully.</p>");
redirect('testimonials_controller/testimonials_edit/'.$id);
}
}
$this->data['message'] = (validation_errors() ? validation_errors() : $this->session->flashdata('message'));
$this->data['testimonials'] = $testimonials;
//display the edit product form
$this->data['title'] = array(
'name' => 'title',
'id' => 'title',
'type' => 'text',
'style' => 'width:300px;',
'value' => $this->form_validation->set_value('title', $testimonials['title']),
);
$this->data['content'] = array(
'name' => 'contentbox',
'id' => 'contentbox',
'type' => 'text',
'cols' => 60,
'rows' => 5,
'style' => 'width:250px;',
'value' => $this->form_validation->set_value('contentbox',$testimonials['content']),
);
$this->load->view('testimonials_edit', $this->data);
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Manojkumar |
Solution 2 | |
Solution 3 | King-of-IT |