Domanda

In pratica ho un sito per lo più basata su Ajax. Quando si carica un risultato, sembra tramite Ajax, e la barra degli indirizzi URL cambia da mysite.com a mysite.com/#xyz/A_Random_Title.

A_Random_Title è un titolo formattato SEO-friendly della cosa caricata, ma la parte importante è #xyz. xyz è l'ID del risultato caricato e viene utilizzato per interrogare il database con.

C'è un modo CodeIgniter in grado di leggere l'URL corrente in quel modo? Faccio di lettura non significa che una volta che la pagina è stata caricata, ma letto una richiesta di esso ... la speranza che abbia un senso!

Grazie!

Jack

È stato utile?

Soluzione

No, è disponibile per il browser , in modo da avere a che fare con Javascript. Il server non è in grado di leggerlo.

Spiegazione:
Fondamentalmente la componente hash l'URL della pagina (la parte che segue il segno #) viene elaborato da solo il browser - il browser non passa mai al server. Questo è purtroppo parte dello standard HTML ed è lo stesso anche se non si sta utilizzando Internet Explorer o qualsiasi altro browser (e per quella materia PHP o qualsiasi altra tecnologia lato server).

Ecco cosa Wikipedia dice a questo proposito:

  

Le funzioni di identificatore di frammento in modo diverso rispetto al resto del URI: vale a dire, la sua elaborazione è esclusivamente sul lato client senza partecipazione dal server . Quando un agente (come un browser Web) richiede una risorsa da un server Web, l'agente invia l'URI al server, ma non invia il frammento. Invece, le attese di agente per il server di inviare la risorsa, e quindi l'agente elabora la risorsa in base al valore frammento. Nel caso più comune, l'agente di scorrere una pagina Web verso l'elemento di ancoraggio che ha un attributo stringa uguale al valore frammento. Altri comportamenti del cliente sono possibili

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top