Codeigniter en database
Ik ben nog een beginner met CI en heb jullie hulp nodig. In een van mijn View pagina's heb ik verschillende Tabs staan en iedere Tab wordt gevuld met gegevens uit verschillende tabellen.
Sommige gegevens worden in een input veld weergegeven en andere weer in een select option. Over verschillende Tabs heb ik ruim 20 verschillende select options (dus gegevens uit ruim 20 verschillende tabellen worden opgehaald).
Tot heden deed ik dat op onderstaand manier gedaan waarbij ik de class aanroep en vervolgens tabelnaam doorgeef:
Quote:
foreach ($cliens_data->fetch_all("tabelnaam") as $aRow):
<option value="'.$aRow["ID"].'" '.$selected.'>'.$aRow["item"].'</option>
endforeach;
<option value="'.$aRow["ID"].'" '.$selected.'>'.$aRow["item"].'</option>
endforeach;
Nu heb ik in CI het volgende:
In de Controller (Clients.php) heb ik dit staan:
Quote:
public function load_client_data() {
$client_id = $_POST['id'];
$client_data = $this->user_model->get_client_data($client_id);
$fetch_all = $this->user_model->fetch_all();
$this->template->loadAjax("clients/client_data.php", array(
"client_data" => $client_data,
"fetch_all" => $fetch_all)
);
$client_id = $_POST['id'];
$client_data = $this->user_model->get_client_data($client_id);
$fetch_all = $this->user_model->fetch_all();
$this->template->loadAjax("clients/client_data.php", array(
"client_data" => $client_data,
"fetch_all" => $fetch_all)
);
In de Model (User_model.php) heb ik dit staan:
Quote:
public function fetch_all() {
return $this->db->get();
}
return $this->db->get();
}
In de View heb ik dit staan:
Quote:
foreach($fetch_all->result() as $o) : ?>
<option value="echo $o->ID " if ($o->ID == $r->ID) echo "selected" > echo $o->item </option>
endforeach;
<option value="echo $o->ID " if ($o->ID == $r->ID) echo "selected" > echo $o->item </option>
endforeach;
Het bovenste wat ik in CI heb geeft mij de gewenste resultaat voor één select option veld. Wat ik eerder heb gezegd, ik heb ruim 20 van deze velden. Hoe kan ik verschillende tabelnamen doorgeven zodat ik in de View de juiste gegevens, uit juiste tabel in de juiste select option veld kan weergeven?
Als ik in de View dit verander:
Quote:
, dan werkt het niet.Ik hoop dat iemand mij hiermee kan helpen.
Gewijzigd op 24/08/2018 21:04:08 door Dymo Masta
Kun je de model niet een parameter voor tabelnaam meegeven? Zodat je -zover als dat gaat- tabellen op eenzelfde wijze kan aanspreken? Of eventueel een parameter voor tabelnaam, keys en values.
Dus je model:
Je controller:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
public function load_client_data() {
$users = $this->model_name->get_all();
$this->load->view('template_name', $user);
}
?>
public function load_client_data() {
$users = $this->model_name->get_all();
$this->load->view('template_name', $user);
}
?>
Je view:
Code (php)
EDIT
Nu ik koffie op heb zie ik pas je echte probleem.. meerdere tabellen aanspreken.
Dat gaat niet met $this->db->get().
Of je joint de tables, of je moet een query omheen brouwen.
Code (php)
1
2
3
2
3
<?php
$query = $this->db->query("SELECT table1.ID, table2.name FROM table1, table2");
?>
$query = $this->db->query("SELECT table1.ID, table2.name FROM table1, table2");
?>
En dan telkens je gewoon opnieuw de foreach aanspreken. Volgens mij moet dat werken.
Rest blijft het zelfde..
Gewijzigd op 25/08/2018 11:02:35 door Bart V B