2013-05-02 2 views
1

J'essaie de transmettre le tableau à la page d'affichage et de placer les éléments dans une liste/liste déroulante. Où vais-je mal dans ce code?CodeIgniter - Envoi d'un tableau du modèle au contrôleur vers la page

Modèle

public function get_suppliers(){ 
     $type = "SUPPLIER"; 
     $this->db->where('usertype', $type); 
     $query = $this->db->get('users'); 
     foreach ($query->result() as $row){ 
      $results = array(
       'userid' => $row->userid, 
       'firstname' => $row->firstname, 
       'lastname' => $row->lastname, 
       'company' => $row->company 
      ); 

     } 
     return $results; 
    } 

Contrôleur

$this->load->model('user_model'); 
$data['supplier']= $this->user_model->get_suppliers(); 
$this->load->view('include/header.php'); 
$this->load->view('addvehicle_view', $data); 
$this->load->view('include/footer.php'); 

Voir

<?php 
    if(isset($supplier)){ 
     foreach ($supplier as $info){ 
     echo'<option value="' . $info->userid . '">' . $info->company . ' - ' . $info->lastname . ', ' . $info->firstname . '</option>'; 
    } 
    } 
    ?> 

Répondre

3

En get_suppliers():

$results = array(); // just in case there is no record 

foreach (...) { 
    $results[] = array(// you forgot the "[]" 
     ... 
    ); 
} 

Autre problème: votre modèle (une fois corrigé) renvoie un tableau de tableaux, alors que votre vue attend un tableau d'objets.

droite au point, voici votre nouvelle méthode modèle sexy:

public function get_suppliers() { 
    return $this->db 
     ->where('usertype', 'SUPPLIER') 
     ->get('users') 
     ->result(); 
} 
+0

je vider le tableau en utilisant var_dump dans la page de vue et au-dessous est ce que je suis arrivé, mais il ne tire pas correctement dans le foreach boucle. Voyez-vous et émettez-vous le pour chaque boucle dans la vue? array (1) {[0] => array (4) {["userid"] => chaîne (1) "3" ["prénom"] => chaîne (13) "FournisseurFirst" ["lastname"] => string (12) "SupplierLast" ["company"] => string (9) "Supply Co"}} – jfur7

+0

On dirait que vous n'avez pas lu ma réponse. Je viens de l'éditer pour ajouter un code prêt à l'emploi. –

+0

Merci pour votre aide :) qui a bien fonctionné! – jfur7

0
public function get_suppliers(){ 
    $type = "SUPPLIER"; 
    $this->db->where('usertype', $type); 
    $query = $this->db->get('users'); 
    $results = array(); 
    foreach ($query->result() as $row){ 
     $results[] = array(
       'userid' => $row->userid, 
       'firstname' => $row->firstname, 
       'lastname' => $row->lastname, 
       'company' => $row->company 
     ); 

    } 
    return $results; 
} 
Questions connexes