Autor Zpráva
brnak1981
Profil *
Ahoj, konecne se mi povedlo dvouurovnove menu asi moc slozite zbytecne ale funguje bezchybne a ja mam radost. Jedinej problem je ze kdyz nekdo dojde na stranky neni aktivni ani hlavni menu a tim padem dokud neklikne na jime zdrave nebo prakticke tak se mu ani neukazou podmenu. Chtel bych aby kdyz nekdo najede na stranky bylo v hlavnim menu zapnute jime zdrave a v jeho podmeu uvod-jime-zdrave. Kdyz to prokliknu ja sam vse funguje naprosto bezchybne, jde mi jen a nastaveni aktivnich polezok menu pri startu stranky, aby se proste uzivateli zobrazila nejaka stranka , jako ze uz si vybral z hlavniho menu i podmenu:
Stranky bohuzel nemam na webu a mam to dost rozpadle, hlavne mi jde oto jak zapsat podminku.



!!elseif($menu=="jime-zdrave") {include "menu1.php";} {$stranka1 == "uvod-praktické";} !!
jde to nejak zapsat? ze pokud stisknu v hlavnim menu jime zdrave, ma zaroven aktivovat zalozku s tranku podmenu uvod-jime-zdrave??


<?
$menu = $_GET["menu"];

if($menu=="jime-zdrave" or $stranka1 )  {include "menu1.php" ;}
elseif($menu=="jime-zdrave") {include "menu1.php";} {$stranka1 == "uvod-praktické";} 


if($menu=="prakticke" or $stranka2 ) {include "menu2.php";}
elseif($menu=="prakticke") {include "menu2.php" ; $stranka2 == "uvod-praktické";} 


?>


<?
$stranka1 = $_GET["stranka1"];

if ($stranka1 == "uvod-jime-zdrave") {include "txt/uvod-jime-zdrave.txt";}
elseif ($stranka1 == "slozky-potravy") {include "txt/slozky-potravy.txt";}

?>


<?
$stranka2 = $_GET["stranka2"];
if ($stranka2 == "uvod-prakticke") {include "txt/uvod-prakticke.txt";}
elseif ($stranka2 == "rozvoz-jidel") {include "txt/rozvoz-jidel.txt";}

?>


Chamurappi
Profil
Brr, tohle se nedá číst. Piš prosím s diakritikou a interpunkcí, delší text děl do odstavců, krom porušování pravidel děláš ostudu všem třicetiletým brnakům :-)

Z dotazu jsem četl jen kousíček, ale ten zdroják není javascriptový. Opravdu tvá otázka patří do kategorie JavaScript?
Tori
Profil
brnak1981:
Co tam includujete z těch "menux.php"? Fragmenty menu? Ukažte, prosím. Ty podmínky na řádcích 9-10, 13-14 se mi taky velmi nezdají - do větve elseif se myslím nemůžete nikdy dostat.
brnak1981
Profil *
Moderátor Davex: Přesunuto z Problémy s proměnnými.

Ahoj, konečně se mi povedlo dvouúrovňové menu asi zbytečne moc složitě ale funguje bezchybně a já mám radost. Jedinej problém je, že když někdo navštíví stránky není aktivní žádná položka hlavního menu a proto se nenačte ani žádné odpovídající podmenu a neaktivuje se žádná stránka. Nevíte prosím někdo jak by se to dalo zařídít. Jak vidíte tak jsem se už pokoušel ale dost nešikovně dát do podmínky aktivaci proměnné stranka1.

Totožný výpis kódu jako v [#1] odstraněn moderátorem.

Moderátor Davex: Nelez prosím do cizích témat a zůstaň si ve svém php- aktivace promene podminkou.
brnak1981
Profil *
Ano, menu1 a menu2 jsou soubory se seznamy. Jedná se o podmenu. Problém je určitě v té podmínce, vůbec nevím jestli je možné v podmínce menu chtít stranku1 nebo stranku2
Tori
Profil
„když někdo navštíví stránky není aktivní žádná položka hlavního menu a proto se nenačte ani žádné odpovídající podmenu a neaktivuje se žádná stránka“
Definujte si nějaké výchozí hodnoty pro případ, že v GET[menu] nebude nic zadané:
$menu = isset($_GET['menu']) ? $_GET['menu'] : 'uvod-prakticke';
$stranka1 = isset($_GET["stranka1"]) ? $_GET['stranka1'] : 'uvod-jime-zdrave';
// atd...
Co představují ty proměnné stranka1, stranka2 ? Podmenu pro první, resp. druhou položku menu?

edit:Na řádcích 10 + 14 máte asi rovnítko navíc u posledního příkazu.
brnak1981
Profil *
Ano správně, stránka1 a stranka2 jsou podmenu pro první a druhou položku. Zkouším to nějak zapošít ale nedaří se mi . Pochopil jsem to tak že mi stačí vyměnit ty první řádky 7,21,30 ,správně?Tam přijde ta podmínka doporučená podmínka?
brnak1981
Profil *
Teďka mi příkaz sice funguje ale když kliknu v druhém podmenu na nějako položku tak se stane jen to že se mi na místo toho správného druhého podmenu objeví první podmenu. Takže se zlepšilo co jsem chtěl, ne uplně ale zase ubyla funkčnost :-)). Achjo
brnak1981
Profil *
Tak tedka koukám že to úplně neřeší ani první problém, protože se neprobarvi ativní položky podmenu,jaky kdybych na ně kliknul normálně, jen se vloží správná stránky ale odpovídající záložka se tváří jako bych na té stránce nebyl :-( . Boha vysvoboďte mě prosím
Tori
Profil
Ukažte ty includy (a html hlavního menu nejlépe také).
brnak1981
Profil *
<style type="text/css">


a.x  {text-decoration: none;padding: 2px 8px 0px 8px ; font-weight: bold;}

a:link.x     {background-color: #8fbc8b; color: black;}
a:visited.x    {background-color: #8fbc8b; color: black;}
a:active.x    {background-color: #fffff0; color: black;}
a:hover.x   {background-color: #fffff0; color: black;}


#aktivni {background-color: #fffff0; color: black;padding:}

li {
	float: left;
	margin: 0 .5em;
	list-style: none;	
	border: solid black 1px;
	border-bottom: none;
}


</style>

<body> 




	


<div style="position: fixed; width: 100%; height: 120px; top: 0px;left: 150px;background-color:#8fbc8b;">

		
<div style="position: fixed; width:100%px; top: 0px; left: 150px;" ><a href="?menu=jime-zdrave"><img border="0" src="img/jime-zdrave.jpg";></a> </div>
<div style="position: fixed; width:100%px; top: 0px; left: 280px;" ><a href="?menu=prakticke"><img border="0" src="img/prakticke.jpg";></a></div> 

<div style="position: fixed; width: 100%; height: 39px; top: 85px ;left: 150px;background-color:green;">


<?
$menu = $_GET["menu"];

if($menu=="jime-zdrave" or $stranka1 )  {include "menu1.php" ;}
elseif($menu=="prakticke" or $stranka2 ) {include "menu2.php";}

?>
</div>

</div>
<div style="position: fixed; width: 150px; height: 100%; top: 0px; left: 0px;background-color:#8fbc8b;" ></div>


<div style="position: fixed; width: 130px; height: 100%; top: 0px; right: 0px;background-color:#8fbc8b;" ></div>

<div style="padding: 130px 140px 0px 180px;background-color:#fffff0;" >

<?

$stranka1 = $_GET["stranka1"];
if ($stranka1 == "uvod-jime-zdrave") {include "txt/uvod-jime-zdrave.txt";}
elseif ($stranka1 == "slozky-potravy") {include "txt/slozky-potravy.txt";}

?>


<?
$stranka2 = $_GET["stranka2"] ; 

if ($stranka2 == "uvod-prakticke") {include "txt/uvod-prakticke.txt";}
elseif ($stranka2 == "rozvoz-jidel") {include "txt/rozvoz-jidel.txt";}

?>


</div>
</body> 
</html>
brnak1981
Profil *
a includuju treba menu1:
<ul>


<li><a href="?stranka1=uvod-jime-zdrave" class="x" style="display:block"<?php if($stranka1=="uvod-jime-zdrave") echo "id='aktivni'" ?> >ÚVOD</a></li>
<li><a href="?stranka1=slozky-potravy" class="x" style="display:block"<?php if($stranka1=="slozky-potravy") echo "id='aktivni'" ?> >SLOZKY POTRAVY</a></li>


</ul>
panther
Profil
brnak1981:
nechce se mi to procházet celé, ale kde bereš v souboru menu1.php proměnnou $stranka1?
brnak1981
Profil *
tady si myslim

<a href="?stranka1=uvod-jime-zdrave" class="x" style="display:block"<?php if($stranka1=="uvod-jime-zdrave") echo "id='aktivni'" ?> >ÚVOD</a>


to by snad melo byt ok, akorat ze furt nevim co stim dal :-(
Tori
Profil
brnak1981:
Ale vycházím-li z [#11], menu1.php includujete na řádku 45, a $stranka1 je definovaná teprve na ř.61. Nejdřív bych tedy dala zjištění všech proměnných z GETu (nebo nastavení výchozích hodnot), pak teprve podmínky a includy. (omlouvám se, s lepší radou dnes nepřijdu.)
brnak1981
Profil *
To uz jsem zkousel ale presto diky
Tori
Profil
Dala jsem tak narychlo cosi dohromady - funguje to jak chcete, ale v kódu je smíchané php s html a nevypadá to moc pěkně, spíš jen jako nápad (nikoli nejlepší), jak by se to dalo řešit.
Celá struktura menu a stránek je uložená v poli. Nejdřív se zjistí, jestli byla zvolená nějaká položka menu. Pokud ne, tak se buď nastaví podle zvolené stránky, anebo výchozí hodnota. Podobně stránka - pokud nebyla zadaná anebo se nenajde v poli, použije se výchozí pro (už nastavenou) položku menu.
Záložky s jednotlivými stránkami (původní soubory menu1, menu2) se generují z pole. Vrchní menu je ještě napevno v html, ale taky by šlo po menších úpravách generovat z pole (bylo by to flexibilnější).

Odkaz.

Ad ↓: Nezasloužená chvála, zas tolik času to nebylo. Posledně jsem se na něčem zasekla a dnes mě náhodou napadlo, jak to udělat. Profík nejsem (jak z kódu vidno), panther a jiní by to udělali rychleji i lépe, tohle je takové narychlo splácané.
brnak1981
Profil *
Děkuju moc, takle jsem si to přestavoval , teď už jen pochopit jak funguje pole a modifikova to ale když už vím jak nato tak je to super, moc děkuju. Jsem tu novy a je to to zajímavá komunita. To funguje na principu vzájemné pomoci? Chci říci někteří tu evidentně ví více než jiní, proč jsou tak dobrosrdeční?Jde o udržení návštěvnosti stránek aby se na ně dala umístit reklama za peníze?Chci tím říct že to Tori určitě zabralo nějaký čas, z čeho žiješ jestli se mohu zeptat? Pokud je ten dotaz nevhodný tak se omlouám a neodpovídejte a ještě jednou díky.
panther
Profil
brnak1981:
Chci říci někteří tu evidentně ví více než jiní, proč jsou tak dobrosrdeční?
třeba pro dobrý pocit. Některým tu bylo ze začátku dobře porazeno, tak teď radí ostatním.

Pokud tu zůstaneš, načerpáš nějaké znalosti a budeš pomáhat ostatním, budeme jen rádi.
brnak1981
Profil *
Aha , díky za odpověď ale do ostatních mi teda chybí pořádný kus práce. Asi je tu hodně prfíků co se tím živí že?
panther
Profil
brnak1981:
ano, i tací, co se tímto oborem živí, tu pomáhají.
brnak1981
Profil *
Tori:
Ahoj, tak už to modifikuju a snažím se vtom zorientovat, docela to jde ale když vkladám stránky tak zo nezvládá češtinu. To vidím poprvé,dá se stím něco dělat?
panther
Profil
brnak1981:
máš špatně nastavené kódování. Musí být stejné v souboru, i ve stránce samotné, příp. i v DB, pokud bys jí využíval.
brnak1981
Profil *
zkoušel jsem všechny tři způsoby kódování ale pořád nic. Myslim že když všechny stránky includuju do jednoho souboru index.php tak stačí uvést kédování jen tam ne?
Tori
Profil
brnak1981:
Nedala jsem do html tag <meta>:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Někdy pomůže zároveň s <meta> posílat i v php hlavičku s kódováním:
<?php
header("Content-Type: text/html; charset=UTF-8");
?>
<html>.....
Funkci header je potřeba dát hned na začátek php souboru, před jakékoli jiné příkazy i html.
panther
Profil
brnak1981:
kódování v hlavičce uvádíš jen jednou, právě v indexu.

Teď ale musíš mít v témže kódování uloženy fyzicky i soubory - jak index, tak ten, který includuješ. Nastavit kódování souboru, resp. uložit soubor v daném kódování by ti měl umožnist tvůj editor, kde píšeš (často se tu zveřejňuje třeba PSPad, ten má tuto volbu pod záložkou Formát).
brnak1981
Profil *
aha, ja to pisu v poznamkovem bloku :-). Taky me napadlo jestli to neni verzi Apatche treba?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: