venerdì 15 marzo 2013

Passaggio di parametri tramite URI

vai all' indice generale

Passaggio di parametri tramite URI

Vediamo come si possono passare parametri tramite l'indirizzo.
Creiamo un progetto e creiamo un controllo (controllo.php), un modello (modello.php) e una vista (home.php ) :

modello.php :

<?php
class modello extends CI_Model {
       function __construct()
       {
             parent::__construct();
       }
       function get_dati()
       {
             $oggetto1["id"] = 1;
             $oggetto1["contenuto"] = "link1";
             $oggetto2["id"] = 2;
             $oggetto2["contenuto"] = "link2";
             $oggetti = Array ($oggetto1,$oggetto2);
             return $oggetti;
       }
}

controllo.php:

<?php
class controllo extends CI_Controller {
       public function index()
       {
             $this->load->model("modello");
             $oggettiDalModello = $this->modello->get_dati();
             $data["oggettiAllaVista"] = $oggettiDalModello;
             $this->load->view('home',$data);
       }
       public function link()
       {
             echo $this->uri->segment(1)."  ";
             echo $this->uri->segment(2)."  ";
             echo $this->uri->segment(3)."  ";
       }
}

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 '<br>';
       echo "<a href=http://localhost:8080/CI8/index.php/controllo/link/".$riga['id'].">".$riga['contenuto']."</a>";
       echo '<br>';
       echo '<br>';
}
?>
</body>
</html>
Il modello non ha niente di particolare, è identico a quello usato in esempi precedenti. Produce in uscita degli oggetti con vari attributi tra cui un id che usiamo per identificare i vari oggetti, come una chiave primaria.

La vista produce un link che ha la parte finale variabile che è proprio l'id. Quindi verranno stampati questi link :
http://localhost:8080/CI8/index.php/controllo/link/1
http://localhost:8080/CI8/index.php/controllo/link/2
e così via.

Nel controllo vediamo come recuperare questi indirizzo (URI) e estrarne le informazioni.
Lo si fa con questa istruzione echo $this->uri->segment(n), dove n è il segmento che ci interessa a partire dall'indice.

Quindi :
$this->uri->segment(1) = controllo
$this->uri->segment(2) = link
$this->uri->segment(3) = 2

Perciò siamo stai in grado di recuperare l'ID dalla navigazione, con il terzo segmento.

vai all' indice generale

Nessun commento:

Posta un commento