Beste allen,

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:

foreach ($cliens_data->fetch_all("tabelnaam") as $aRow):
<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:
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)
);


In de Model (User_model.php) heb ik dit staan:
public function fetch_all() {
return $this->db->get();
}


In de View heb ik dit staan:
foreach($fetch_all->result() as $o) : ?>
<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:
<?php foreach($fetch_all("TABEL NAAM")->result() as $o) : ?>
, dan werkt het niet.

Ik hoop dat iemand mij hiermee kan helpen.
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.
Je vergeet in je model je tabelnaam en je model mee te geven.
Dus je model:

<?php
public function get_all() {

  return $this->db->get('table_name');
}
?>


Je controller:

<?php
public function  load_client_data() {

  $users = $this->model_name->get_all();
  $this->load->view('template_name', $user);
 
}
?>


Je view:

<select name="userlist">
<?php foreach($users->result() as $o) : ?>
  <option value="<?php echo $o->ID;?>"><?php echo $o->item;?></option>
<?php endforeach; ?>
</select>


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.

<?php
$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..

Reageren