2015-06-21 7 views
6

Nel mio controller ho usato in questo modo. Voglio passare un dato variabile alla mia funzione indice del controller tramite reindirizzamentoCome passare un dato con reindirizzamento in codeigniter

$in=1; 
redirect(base_url()."home/index/".$in); 

e la mia funzione di indice è

function index($in) 
{ 
    if($in==1) 
    { 

    } 
} 

Ma io sto ottenendo alcuni errori come le variabili non definite.
Come posso risolvere questo?

+1

post gli errori si prega –

+0

possibile duplicato del [GET parametri nell'URL con CodeIgniter] (http://stackoverflow.com/questions/334708/get-parameters-in-the-url-with -codeigniter) –

risposta

3

Così nel regolatore si può avere in una funzione:

$in=1; 
redirect(base_url()."home/index/".$in); 

E in funzione di destinazione è possibile accedere al $ di valore come this:

$in = $this->uri->segment(3); 
if(!is_numeric($in)) 
{ 
    redirect();  
}else{ 
    if($in == 1){ 

    } 
} 

Inserisco segmento (3) perché nell'esempio $ in è dopo 2 trattini. Ma se si dispone ad esempio di questa struttura di collegamento: www.mydomain.com/subdomain/home/index/$in, sarà necessario utilizzare il segmento (4).

Spero che questo aiuti.

11

Utilizzare la sessione per passare i dati durante il reindirizzamento. Ci sono un metodo speciale in CodeIgniter per farlo chiama "set_flashdata"

$this->session->set_flashdata('in',1); 
redirect("home/index"); 

Ora si può ottenere in al controller di indice come

function index() 
{ 
$in = $this->session->flashdata('in'); 
if($in==1) 
    { 

    } 
} 

ricordati che questi dati saranno disponibili solo per il rinvio e ha perso alla pagina seguente richiesta. Se avete bisogno di dati stabili quindi è possibile utilizzare l'URL con il parametro & GET $this->input->get('param1')

+0

È un modo funzionante, ma questo dovrebbe essere possibile anche con prettyurls e senza sessione o querystring. –

0

Ulteriori informazioni sarebbero molto utili, in quanto dovrebbe funzionare.

cose che si possono verificare:

  • è il controller di nome home.php? Andare a redirect(base_url()."home"); mostra la tua home page?
  • Rendi pubblica la tua funzione di indice.

    public function index($in) { 
        .... 
    } 
    
Problemi correlati