2011-08-17 11 views
6

Ho un sito creato con Codeigniter dove ci sono molte pagine e directory.Come posso mantenere lo stesso URL nella barra degli indirizzi per ogni pagina?

Supponiamo che il nome del sito sia www.example.com (questa è la pagina dell'indice). Se l'utente accede a un'altra pagina, ad esempio facendo clic sul collegamento "Informazioni", come posso rendere il nome del sito non nella barra degli indirizzi per tutte le pagine?

+2

AJAX. JavaScript è l'unico modo per modificare il contenuto della pagina senza modificare l'URI della richiesta. –

+0

o iframe poco chiari. – sdleihssirhc

+0

U può modificare le impostazioni delle rotte con l'uso di caratteri jolly in routes.php – lampdev

risposta

2

Questa è una cattiva idea se non altro perché impedisce agli utenti di essere in grado di aggiungere il proprio sito ai segnalibri.

Ci sono due modi per farlo, tuttavia, se siete intenzionati in questa direzione (e vi suggerisco davvero di tornare indietro prima che sia troppo tardi). È possibile caricare tutto in un iframe:

<!-- your site might look like this then --> 
<html> 
    <body><iframe src="http://path.to.your.real.site" /> 
</html> 

e la proprietà src avrebbe diretto verso qualche altro URL che ha in realtà tutte le dinamiche URL.

L'altra opzione è AJAX. Questo è davvero troppo lungo e complicato per un esempio.

+0

senza JS o AJAX esiste qualche codice in php per eseguire questa operazione? –

+0

@ maulik.patel Solo se si rende ogni collegamento nel proprio sito un invio POST (fattibile, ma si vorrà commettere seppuku) – cwallenpoole

+0

@ maulik.patel esiste un motivo per cui si evita JavaScript? Il suo supporto è quasi universale. A meno che tu non stia cercando di sviluppare qualcosa per un gruppo estremamente piccolo di persone che hanno disattivato JavaScript e non utilizzano la maggior parte del Web, non evitarlo. –

0
Non

sicuro di CodeIgniter bu si può fare questo in php pianura come segue:

  1. tuo url associa sempre ad una singola funzione php "facciata" (forse anche "index.php").
  2. Nella navigazione della pagina si "POST" sempre da un modulo. Non utilizzare mai "href ="
  3. Nei FORM ci sono un paio di campi nascosti che registrano le pagine correnti e richieste.
  4. Quando viene eseguita la "facciata" del php, esaminare i campi del modulo "corrente" e "richiesto" e chiamare il codice appropriato per eseguire il rendering della pagina "richiesta".

In alternativa è possibile utilizzare "cookie" anziché campi di moduli nascosti e alcuni semplici javascript per impostare il valore del cookie "richiesto".

0

Usa FRAMESET OPPURE Utilizzare Ajax

<FRAMESET ROWS="100%,*" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0> 
    <FRAME NAME="top" SRC="/Login .aspx or .php" NORESIZE> 
</FRAMESET> 
Problemi correlati