martedì 12 marzo 2013

link dinamici

vai all' indice generale

 link dinamici

Riprendiamo l'esempio precedente e modifichiamo il modello.php , in particolare la funzione get_dati.
function get_dati()
{
       $this->load->helper('url');
       $oggetto1["id"] = 1;
       $oggetto1["contenuto"] = "link1";
       $oggetto1["link"] = "<a href=\"".base_url().$oggetto1["contenuto"]."\">LINK1</a>";
       $oggetto2["id"] = 2;
       $oggetto2["contenuto"] = "link2";
       $oggetto2["link"] = "<a href=\"http://localhost:8080/CI8/index.php/controllo/link2\">LINK2</a>";
       $oggetti = Array ($oggetto1,$oggetto2);
       return $oggetti;
}
Stiamo simulando il recupero di una stringa link1 che poi usiamo come indirizzo , come se ad esempio link1 venisse da un database , o come parametro di ingresso di una funzione. Abbiamo reso dinamico il link. Proviamo il progetto a http://localhost:8080/CI8/index.php/controllo

Adesso spostiamo i link dinamici sulla vista e restituiamo al modello il suo ruolo puro, cioè quello di restituire i dati. Eliminiamo dal modello i link e lasciamo solo i contenuti :

modello.php :

<?php

class modello extends CI_Model {
       function __construct()
       {
             parent::__construct();
       }
       function get_dati()
       {
             $this->load->helper('url');
             $oggetto1["id"] = 1;
             $oggetto1["contenuto"] = "link1";
             $oggetto2["id"] = 2;
             $oggetto2["contenuto"] = "link2";            
             $oggetti = Array ($oggetto1,$oggetto2);
             return $oggetti;
       }
}

Elaboriamo i link direttamente nella vista :
home.php :

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>home</title>
</head>
<body>
<h1>HOME</h1>
<?php
foreach ($oggettiAllaVista as $riga)
{
       echo $riga['id'] , ' ';
       echo $riga['contenuto'] , ' ';
       echo "<a href=\"".base_url().$riga['contenuto']."\">LINK1</a>";
       echo '<br>';
}
?>
</body>
</html>

Abbiamo quindi ottenuto di nuovo la presentazione separata dal modello. Il modello non è interessato a sapere cosa si deve fare con i link, potrebbero essere come in questo caso dei collegamenti da stampare come href ma potrebbero essere qualunque altra cosa, immagini da visulizzare a video, collegamenti per il download ecc.
Come prima si può provare il progetto a http://localhost:8080/CI8/index.php/controllo

Nessun commento:

Posta un commento