NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Získávání #něco z URL pomocí php

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
StrangeR
Člen
Avatar
StrangeR:20.10.2015 11:36

Ahoj,
Zkouším udělat takový jednoduchý načítací systém, který pří každém kliknutí v menu na nějaký button přidá za URL #něco a podle toho se přes php načte nějaká určitá stránka, ale problém je v tom, že php vrátí maximálně URL jako index.php?.

Jak to mám tedy udělat tak, aby PHP opravdu vrátilo něco takového: #index, #team, #uploader atd...

Kód, který jsem zkusil:

$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
 
Odpovědět
20.10.2015 11:36
Avatar
StrangeR
Člen
Avatar
StrangeR:20.10.2015 12:04

A taky toto:

$new_url = parse_url($_SERVER['REQUEST_URI']);
echo "#".$new_url["fragment"];

Chyba: Notice: Undefined index: fragment in C:\xampp\htdoc­s\index.php on line 7

 
Nahoru Odpovědět
20.10.2015 12:04
Avatar
Richard
Člen
Avatar
Richard:20.10.2015 12:25

Píšeš že ten button přidí do url kotvu - čili nedojde k refreshi, je to tak?
Pokud nedojde k refreshi, tak se znovu nespustí php kód který parsuje url. Kotvy můžeš bez refreshe zpracovávat například javascriptem.

Nahoru Odpovědět
20.10.2015 12:25
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
shaman
Člen
Avatar
Odpovídá na StrangeR
shaman:20.10.2015 12:36

Cast #neco sa nikdy neodosiela z browseru na server. Tym padom nevies zachytit #index, #team, #uploader atd... cez PHP.
Napadaju ma dve moznosti:

1.Javascript to precitat vie. Skus alert(window.lo­cation.hash); Teda mozes spravit nejaky script, ktory to precita a posle na server, napr posle to API alebo spravi ajax volanie. Zalezi na co to potrebujes.
2. Nepouzivat # (hash) ale klasicke query string a tvoj prvy priklad bude fungovat.

Editováno 20.10.2015 12:37
Nahoru Odpovědět
20.10.2015 12:36
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.