Stránka 1 z 2

[PHP] <a href="index.?akce=neco">

Odeslat příspěvekNapsal: 20. 7. 2006 09:35
od double_m
Zdravíčko, lidičky mám 6 odkazů a v každým mám nějakou jinou akci,

stránka najede když $_GET['akce'] == "něco", ale všechno funguje až na jedno... já kliknu třeba na první odkaz stránka najede ale když nic neudělám nikam nekliknu a dám hned druhej odkaz tak stránka je bíla stačí dám F5 (refresh) a najede ta akce kterou jsem klikl, ... kdyz vlezu ale na stránku , kliknu na odkaz najede stránka a pak třeba kliknu někam 2X pod to do prostoru a dám další odkaz všechno běhá good....

Nevíte.. ?


// mbing : Téma přesunuto ● z Programování do Tvorba webových stránek a aplikací.

Odeslat příspěvekNapsal: 20. 7. 2006 09:42
od Johny[CZ]
Já používám tohle:

Kód: Vybrat vše
if (isset($_GET[view])) {
   $clanek="pages/".$_GET[view].".php";
   include $clanek;
}
else {
   echo "Úvodní text";
}
[/


Odkazy jsou jako <a href="index.php?view=neco">
Stránky jsou uloženy v adresáři "pages"

Odeslat příspěvekNapsal: 20. 7. 2006 11:32
od double_m
Promin ja to napsal spatne, ne ze bych tam includoval stranku, ale vlozim tam jinej obsah pod tech sest odkazu.... Vzdycky je ...x.php?akce=xxx a a kod v ty samy strance je if($_GET['akce']) == "xxx" { a tady je to co se ma vypsat...} :)

Odeslat příspěvekNapsal: 20. 7. 2006 11:41
od ptimura
Nevime - co takhle nejakej kod?

Odeslat příspěvekNapsal: 20. 7. 2006 11:52
od Johny[CZ]
Myslíš takhle?

Kód: Vybrat vše
if ($_GET[akce] == "xxx") {
  echo "Text stránky xxx";
}

elseif ($_GET[akce] == "yyy") {
  echo "Text stránky yyy";
}

else {
   echo "Úvodní text";
}
[/co

Odeslat příspěvekNapsal: 20. 7. 2006 12:19
od ptimura
Zkus
Kód: Vybrat vše
if (!isset($_GET[akce])) {
$akce = 'uvod';
} else {
$akce = $_GET[akce];
}
switch ($akce) {
   case 'xxx':
       echo "Strana xxx";
       break;
   case 'yyy':
       echo "Strana yyy";
       break;
   case 'uvod':
       echo "uvodni text";
       break;
   default:
       echo "Stranka neni definovana";
}

dava ti to vyhodu vetsi flexibilnosti pri pridavani dalsich stranek - neni nic horsiho nez pokouset se vyznat v zaplave If / ElseIf / Else.

Odeslat příspěvekNapsal: 20. 7. 2006 12:29
od Mike.M
Lepsi by bylo, kdybys sem dal cast toho kodu a ne abychom badali jak to mas udelane

Odeslat příspěvekNapsal: 20. 7. 2006 12:30
od Johny[CZ]
No já nevim... Přijde mi to úplně stejné, možná s tím "case" je to korektnější.
Stran té flexibilnosti bych použil ten s tim includem, a i ten kód na vkládání je kratší. A můžeš jednodušeni přidávat další stránky, nemusíš dávat další "case" nebo "elseif".

Odeslat příspěvekNapsal: 20. 7. 2006 12:47
od ptimura
Jo jasne, s tim includem je to kratsi, ovsem soubor se strankou MUSI existovat, protoze jinak ti to hodi nepeknou hlasku. Reseni s case je lepsi kdyz chces mit veskerej kod v jednom souboru, pripadne kdyz texty na stranky vybiras z databaze.

//edit: S tim includem : kdyz ti nekdo zada do url zkusmo akce=pokus, tak ti to hodi hlasku ze soubor neexistuje, kdezto s case ti to napise ze stranka neni definovana. Pripadne se to taky da presmerovat na 404.

Odeslat příspěvekNapsal: 20. 7. 2006 13:18
od Mike.M
co brani pridat
Kód: Vybrat vše
if (isset($_GET[view])) {
   $clanek="pages/".$_GET[view].".php";
  if (File_exists($clanek): include $clanek;
}
else {
   include "uvod.php";
}


//Mývalice: Nepoužívej citaci, když reaguješ na předcházející příspěvek. Je to zbytečné.

Odeslat příspěvekNapsal: 20. 7. 2006 13:38
od ptimura
Mike.M: Jasne, jasne :)

Odeslat příspěvekNapsal: 20. 7. 2006 20:39
od double_m
ne-e tam jde o to né že by to nefungovalo zhlediska kodu ale ze kdyz dam 2x za sebou nejakej odkaz tak mi ukaze stranku a najede bila stranka a nejde zobrazit ani zdrojovej kod... proste se to sekne pri najizdeni dam F5 a vsechno najede jak ma..

Odeslat příspěvekNapsal: 21. 7. 2006 07:00
od Mike.M
tak sem hod kor at ti to muzeme optavit. Ted z tveho vysvetleni kazdy bada a urcite si rika ze to mas prasacky udelano.

Odeslat příspěvekNapsal: 21. 7. 2006 07:39
od Johny[CZ]
[quote="ptimura"]...ovsem soubor se strankou MUSI existovat...quote]

Aha, už jsem pochopil proč ne include:-). Je pravda že by to tam mělo být ošetřené (viz Mike.M). Asi to tak taky udělám:-)

Odeslat příspěvekNapsal: 21. 7. 2006 07:49
od Mike.M
ono to mate vlastne nastejno, pokud tam je case ci neni. bo pokud ve switchi neexistuje promenna, a clovek si do adr. radku napise jakoukoli, taky to vyhodi error, a je lepsi include, protoze kod je prehlednejsi, nez pridavat porad nove a nove case. pro kazdy odkaz. Kdezto ten muk skriptik satci jen do <a href=".... napsat cokoli a mit ten soubor a autoomaticky to je.