Codeigniter Aktualisieren von Datenbank-Zeile durch die übergabe der id in der uri
Ich habe ein edit-button für jede Zeile in einer Liste (view1). Wenn die Bearbeiten-Schaltfläche wird angeklickt, eine Seite öffnet, wo ich kann, Bearbeiten Sie die Zeile Felder (ansicht2). Es geht die Zeilen-id ansicht2 korrekt (id 11 im Beispiel unten), die uri-segment rufe ich in das Modell zu aktualisieren diese Zeile 11 mit array-Daten vom controller, die-array-Daten auch ich ging zu dem Modell. Aber es ist immer noch nicht aktualisiert. Danke für Eure Hilfe.
(Ansicht 1):
//clicking edit button - redirects and passes row id 11 to view 2
<a href='<?= site_url("admin/admins/update_site/$admin->id") ?>'><img src='<?= base_url('media/admin/images/icons/config.png'); ?>'/></a>
(Ansicht 2):
//view 2 opens where I can edit the row fields
//url is now: www.site.com/admin/admins/update_site/11:
<form action="<?= site_url('admin/admins/update'); ?>" method="POST">
Username: <br>
<input type='text' name='username'/><br>
Password: <br>
<input type='password' name='password' /><br>
<input type='submit' name='submit' value='Save' />
</form>
controller:
//making an array with updated data and send it to the model
public function update(){
$update = array(
'username' => $this->input->post('username'),
'password' => $this->input->post('password')
);
$this->load->model('admin/admins_model');
$this->admins_model->update_admin($update);
redirect(site_url('admin/admins/read'));
}
Modell:
//update row 11 (from uri segment) the with the array data from controller
public function update_admin($update){
$this->db->where('id', $this->uri->segment(4));
$this->db->update('admins', $update);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich schlage vor, u hinzufügen von ausgeblendeten Felds in der ur-form für id, problem hier ist die ur-form der Aktion nicht haben, 4. segment.
ansicht2:
Modell:
Bearbeiten Sie Ihre Routen, so dass Sie akzeptieren, url:
admin/admins/update/1
Dann können Sie einfach fügen Sie parameter zur Steuerungfunction update($id)
so die$id
speichern 1. Ich schlage vor, Sie verwenden für Ihre route/(:num)
zu verhindern nicht-numerische Zeichen.