Autor Zpráva
radekt
Profil
Dobrý den,
pohyb na klikací mapě (http://rim.me.cz/mapy/mapa.php) mi zajišťuje javascript.
Návštěvník nejprve zadá adresu - tedy klikne buĎ na klikací část v mapě nebo na odkaz vygenerovaný v pravém sloupci po zadání hledaného řetězce (např.

http://rim.me.cz/mapy/mapa.php?m.x=3562&m.y=1438#jump). Javascript je následující:

<script type=text/javascript>;
div_mapa = document.getElementsByTagName('div')[2];
div_lokalita = document.getElementsByTagName('div')[3];
div_ctverec = document.getElementsByTagName('div')[4];
document.getElementById('lokalita').className='blank_lokalita';
div_mapa.style.position='absolute';
div_mapa.style.top ='1438px';
div_mapa.style.left ='3562px';
div_mapa.style.visibility='visible';
div_lokalita.style.position='absolute';
div_lokalita.style.top ='1267px';
div_lokalita.style.left ='3482px';
div_lokalita.style.width ='313px';
div_lokalita.style.height ='313px';
div_lokalita.style.visibility='visible';
div_ctverec.style.top = '0px';
div_ctverec.style.left = '0px';
document.location.href = '#jump';
div_ctverec.style.top ='1267px';
div_ctverec.style.left ='3482px';
document.location.href = '#jump';
</script>

Dá se stejná funkčnost zařídit pomocí php (kdyby měl návštěvník stránek vypnutý javascript)?
Podařilo se mi dojít sem:

$doc="mapa.php";

$dom = new DOMDocument;

@$dom->loadHTMLFile($doc);
$div_mapa = $dom->getElementsByTagName('div')->item(2);
$div_lokalita = $dom->getElementsByTagName('div')->item(3);
$div_ctverec = $dom->getElementsByTagName('div')->item(4);
$dom->getElementById('lokalita')->className='blank_lokalita';

ale dál už jsem nepokročil, ač jsem hledal na php stránkách i na různých fórech.
Alphard
Profil
Ve zde uvedeném kódu se pomocí javascriptu mění výhradně css, to lze určitě vygenerovat pomocí php.

Pokud jde o konkrétní postup, nesnažil bych se otrocky kopírovat js kód, v php pro toto zadání nepovažuji přístup přes DOM za optimální.
Doporučuji spíše klíčové css vlastnosti vytáhnout z externího stylopisu do stránky do bloku <style></style> a tam do nich jednoduše vypsat patřičné proměnné.
radekt
Profil
Můžete mi trochu napovědět, jak? Není mi to příliš jasné. Děkuji.
Alphard
Profil
<style>
div.moje_trida { position:absolute; top: $top; left: $left; }
</style>

Jestli jsem správně pochopil problém, tak vše, co potřebujete, je tímto způsobem nastavit posunutí mapy a nějaké rámečky.
radekt
Profil
Aha, mě mátlo vyjádření vytáhnout z externího stylu. Takže pomocí inline stylu. Děkuji, zkusím a dám vědět.
radekt
Profil
Ano, funguje, děkuji. Stejně by mě ale zajímalo, jen tak technicky, zda by to šlo i prostřednictvím php (DOM).

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:

0