l'affichage des données de la base de données de liste déroulante CodeIgniter
J'ai du mal avec l'affichage des données de la bd de liste déroulante.
C'est ce que j'ai essayé:
Model.php
public function __construct()
{
parent::__construct();
}
function getAllGroups()
{
/*
$query = $this->db->get('location');
foreach ($query->result() as $row)
{
echo $row->description;
}*/
$query = $this->db->query('SELECT description FROM location');
foreach ($query->result() as $row)
{
echo $row->description;
}
//echo 'Total Results: ' . $query->num_rows();
}
Controller.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Delivery_controller extends CI_Controller{
public function __construct()
{
parent::__construct();
$this->load->model('delivery_model');
}
public function index()
{
$data['title']= 'Warehouse - Delivery';
$this->load->view('include/header',$data);
$this->load->view('include/navbar',$data);
$this->load->view('delivery_view', $data);
$this->load->view('include/sidebar',$data);
$this->load->view('include/footer',$data);
$data['groups'] = $this->delivery_model->getAllGroups();
}
}
View.php
<select class="form-control">
<?php
$data = $this->delivery_model->getAllGroups();
foreach($description as $each)
{ ?><option value="<?php echo $each['description']; ?>"><?php echo $each['description']; ?></option>';
<?php }
?>
</select>
Mais les résultats s'affichent en haut de ma page. C'est ne figurant pas sur la liste déroulante. Ce que je fais mal ici? L'aide est très apprécié. Merci.
- Qu'est-ce que
return $data;
dans votre modèle? Où vous n'avez défini le$data
variable? - J'ai enlevé le retour $données à partir de mon modèle.
- Je poste une réponse détaillée. Vérifier si que de résoudre votre problème.
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas appeler votre modèle à partir de votre point de vue. Au lieu d'essayer de vous appeler modèle et
$data['groups']
avant de vous charger votre point de vue.Aussi ne pas l'écho de la ligne des résultats dans votre modèle, sauf si vous le souhaitez afficher sur votre page.
Contrôleur:
Modèle:
Vue:
$data
à votre point de vue à chaque clé est accessible une variable dans votre point de vue. Ex:$data['groups']
dans votre contrôleur correspond à$groups
de votre point de vue.C'est ce que vous devez faire:
Modèle:
Contrôleur:
Vue:
Codeigniter a déjà des fonctions spécialisées qui permettent de minimiser la quantité de html que vous avez à vidage dans votre code:
Modèle
Contrôleur
Vue
Si vous avez besoin d'avoir le point de vue de traction, les données précédentes dans la liste déroulante, vous pouvez faire une boucle foreach pour obtenir la valeur précédente de la liste déroulante à partir de la base de données de ie... $description = $item->description; et dans la vue, de modifier le " set_value('description')' simplement '$description.'
Ne jamais appeler un modèle à partir d'un point de vue. C'est faisable mais la encore vous perdez le point de l'utilisation d'un MVC en premier lieu.
Appeler le modèle de votre contrôleur. Obtenir les données et transmettre les données à votre vue.
Utiliser comme ci-dessous.
De votre point de vue, il suffit de faire une boucle autour de la
$groups
variable etecho
à votre liste déroulante.Et de votre modèle de fonction devrait être,
Mieux, je pense, de votre point de vue utilisation:
Sur votre modèle de obtenir toutes vos données dans un tableau avec:
Dans le contrôleur:
En vue:
}