Autor Zpráva
greno
Profil *
Tu nizsie mam skript, ktory mi spravi to ze mam formular a ked si na nejake kliknem tak sa mi nacita stranka, bez toho aby sa musela obnovit cela, obnovi sa iba jej cast (resp. nacita sa to co potrebujem). Neviete mi niekto poradit nieco podobne ale aby sa to robilo cez <a href=....> alebo nieco podobne, len aby sa to dalo urobit cez text a nemusel pouzivat formulare?? Nechcel by som pouzivat frameset.
Dakujem

<form action="" method="post">
<select name="predmet" size="5" onChange="this.form.submit();">
<option value="all" "<? if ($predmet == "all") {echo 'selected';} ?>">ALL</option>
<option value="aaa" "<? if ($predmet == "aaa") {echo 'selected';} ?>">AAA</option>
<option value="bbb" "<? if ($predmet == "bbb") {echo 'selected';} ?>">BBB</option>
<option value="ccc" "<? if ($predmet == "ccc") {echo 'selected';} ?>">CCC</option>
<option value="ddd" "<? if ($predmet == "ddd") {echo 'selected';} ?>">DDD</option>
</select>
</form>

<? switch($predmet) {
case 'all':
echo 'ALL';
break;
case 'aaa':
echo 'AAA';
break;
case 'bbb':
echo 'BBB';
break;
case 'ccc':
echo 'CCC';
break;
case 'ddd':
echo 'DDD';
break;
} ?>
Joker
Profil
To je stránka tak obrovská, že se vyplatí načítat jenom část? Typicky bych řekl, že to co se nemusí načítat je tak hlavička a patička (a pokud se v menu dynamicky neoznačuje aktuální položka, tak menu) a těch pár kilobajtů (možná ani to ne) snad nestojí za to...
greno
Profil *
ale to nema len tuto jednu vyhodu. je to napr aj taka vyhoda ze premene nemusim prenasat cez adresu (premena1=x&premena2=y...premena32=h&....). este som rozmyslal ze by sa dalo robit tak ze cez session prenasat ale uz duplom netusim ako vyrobit session premenu na kliknutie......
Joker
Profil
Abych odpověděl na otázku, v samotném HTML není kromě rámů a <iframe> mechanismus, jak obnovit jen část dokumentu.

je to napr aj taka vyhoda ze premene nemusim prenasat cez adresu
Nejsem si jistý, nakolik je to výhoda.
Respektive takhle: Nenastává pak situace, kdy adresa stránky neodpovídá jejímu obsahu (tj. zkopírování a vložení adresy do nového okna nevede na tutéž stránku)?
peta
Profil
google.com ajax javascript examples
Pro vypis selectu bych pouzil cyklus s vypisem nejakeho pole.
greno
Profil *
ja by som sa praveze chcel zbavit selectu a nahradit to obycajnym textom alebo odkazom (ako je to napr v googli talku)
greno
Profil *
a odpoved pre jokera:
skor by som to chcel pouzit na ochranu, pretoze ak mas v adrese len nazov stranky aj ked tam na tej stranke hocico robis je to ovela lepsie ako ked vidno vsetko vypisane, nemyslis??
Joker
Profil
greno
ja by som sa praveze chcel zbavit selectu
Tak to je jednoduché, prostě místo <option> nagenerovat odkazy a upravit Javascript.

ak mas v adrese len nazov stranky aj ked tam na tej stranke hocico robis je to ovela lepsie ako ked vidno vsetko vypisane, nemyslis??
Ne. Dokonce bych řekl, že to je ještě horší, protože méně zkušeného webmastera to může ukolébat do falešného pocitu bezpečí a ten pak zanedbává další ochranná opatření.
Jinak to ochrání proti nezkušenému a zvídavému návštěvníkovi, který by "jen tak" zkoušel experimentovat s adresou stránky a shodou náhod by se mu povedlo provést nějakou škodlivou akci. Ale podle mých zkušeností minimálně pro 95% nezkušených návštěvníků je jediná myslitelná operace s adresou stránky její opsání či zkopírování někam. Takže bych tohle nepovažoval za velký problém.
Zato někoho dostatečně znalého fungování webů a PHP, aby dokázal upravovat adresu cíleně, takováhle ochrana nezastaví.
greno
Profil *
Tak to je jednoduché, prostě místo <option> nagenerovat odkazy a upravit Javascript.
a ako potom spravim k tomu refresh? ze po kliknuti sa mi to zmeni

o tej bezpecnosti mas ciastocne pravdu, ale v podstate to mas jedno kde mas premene, lebo ked ti chce niekto uskodit tak ti nepomoze ani jedno ani druhe ;)
Joker
Profil
greno
a ako potom spravim k tomu refresh? ze po kliknuti sa mi to zmeni
U odkazu href nebo onclick.
Například:
<a href="javascript:neco(2)">Dvojka</a>
nebo:
<a href="#neco=2" onclick="neco(2)">Dvojka</a>

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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