vendredi 20 septembre 2013

Les vues

Exercice 1 : notre première vue

1) En utilisant l'annexe 1, créez la vue blog_vue

2) Affichez la vue blog_vue dans la méthode afficherbillet du contrôleur blog


Exercice 2 : transmettre des données dynamiques à une vue

1) A l'aide d'un tableau, transmettez les données de l'annexe 2 à votre vue blog_vue via la méthode afficherbillet

2) Même consigne que pour le 1) sauf que cette fois ci nous utiliserons un objet au lieu d'un tableau


Exercice 3 : notre vue comme donnée

1) Au lieu d'afficher la vue placez la dans une variable.


Annexe 1 :

<html>
 <head>
  <title>Mon blog</title>
 </head>
 <body>
  <h1>Bienvenue sur mon blog!</h1>
 </body>
</html>

Annexe 2 :

'titre' => 'Mon titre', 'message' => 'Mon message'


Correction de l'exercice 1 :

On crée un nouveau fichier et on y colle le code de l'annexe 1 :

Sur CodeIgniter les vues sont a enregistrer dans le dossier application/views/. Le nom de cette vue est determinée par le nom que l'on donne au fichier. Ainsi pour appeler notre vue blog_vue nous devons enregistrer notre vue sous le nom blog_vue.php

Retournons maintenant à notre contrôleur blog et modifions la méthode afficherbillet pour appeler notre vue blog_vue

function afficherbillet () {

 $this->load->view('blog_vue');

}

Il ne nous reste qu'à charger notre méthode via notre navigateur

Il est interessant de noter que dans CodeIgniter une vue n'appartient pas obligatoire à une et une seule méthode, plusieurs méthodes peuvent avoir une même vue.

Nous pouvons également charger plusieurs vues au sein de notre méthode, les vues seront affichées dans l'ordre d'appel les unes après les autres.

A titre d'exemple ce code :

function afficherbillet () {

 $this->load->view('blog_vue');
 $this->load->view('blog_vue');

}

nous retournera :


Correction de l'exercice 2 :

Pour envoyer des données à une vue c'est très simple il suffit de mettre un tableau ou un objet en deuxième paramètre :

$data = array(
               'titre' => 'Mon titre',
               'message' => 'Mon message'
          );

$this->load->view('blog_vue', $data);

Puis, pour récupérer ces données dans notre vue :

<html>
   <head>
      <title><?php echo $titre; ?></title>
   </head>
   <body>
      <h1><?php echo $message; ?></h1>
   </body>
</html>

On affiche ça dans notre navigateur :

A la place d'un tableau nous pouvons utiliser un objet :

function afficherbillet () {

 $data = new stdClass();
 $data->titre = 'Mon titre';
 $data->message = 'Mon message';

 $this->load->view('blog_vue', $data);

}

Ce qui nous affichera exactement le même résultat :


Correction de l'exercice 3 :

Il se peut que dans certains cas, au lieu d'afficher la vue, vous devez la mettre dans une variable.

Il nous suffit d'ajouter un 3ème paramètre TRUE et d'assigner une variable

function afficherbillet () {

 $data = new stdClass();
 $data->titre = 'Mon titre';
 $data->message = 'Mon message';

 $maVue = $this->load->view('blog_vue', $data, TRUE);
 echo $maVue;

 // SI AUCUNE DONNEES
 // $maVue = $this->load->view('blog_vue', '', TRUE);

}

Aucun commentaire:

Enregistrer un commentaire