Autor Zpráva
simka
Profil *
udělal jsem si v PHP dvě funkce, jedna pro rozlišní 1024*768 a druhá pro 800*600. v JavaScriptu jsem si dále vytvořil proměnnou, která obsahuje 1024, nebo 800, podle nastavení rozlišení uživatele. ale teď vyvstal jeden problém: jak tuto proměnnou můžu předat PHP, které už dále rozhodne, kterou funkci zavolá? zkoušel jsem to pomocí funkce if v JS, ale php příkaz vykoná, i když je podmínka v JS false. pak jsem to ještě pěkně dlouho zkoušel, ale prostě to nešlo. pak jsem nad tím v klidu uvažoval a napadly mě čtyři možnosti:
1. existuje nějaká funkce v PHP pro zjištění rozlišení (o tom pochybuji)
2. předat prohlížeči metodou GET (nepraktické, musel bych přepsat všechny odkazy)
3. vytvořit přes JS cookie, kterou by přečetlo PHP (zde by bylo ale už dvojí riziko, že to nebude fungovat - uživatel si může vypnout i cookie, i JavaScript)
4. předat PHP přes formulář (asi nejvhodnější, ale uživatel by musel klikat - neexistuje nějaká fce JS, která sama a bez uživatele odešle formulář?)

moc děkuji za odpověď s nejvhodnějším řešením
joejoe
Profil *
1) ne
2) staci to predat jenom 1x potom to muzete soupnout pres session
3) disable cookies
4)
<form name="mujformular">
<input type="hidden" name="rozliseni" value="1024">
</form>
<script> document.mujformular.submit() </script>

prakticka rada? predelat to tak aby stranky fungovali s jakymkoli rozlisenim.
proc?
- udelate novou verzi stranek pro muj mobil? rozliseni je displeje je 120x120 ?
- na mojem pocitaci mam rozliseni 1600x1200

docela pomaha udavat rozmery relativne (width="100%"), spravne pouzivat css, atd.
igamenir
Profil
Volil bych řešení 4.
Funkce existuje a je to překvapivě jménoformuláře.submit()
simka
Profil *
1) ne
2) staci to predat jenom 1x potom to muzete soupnout pres session
3) disable cookies
4)
<form name="mujformular">
<input type="hidden" name="rozliseni" value="1024">
</form>
<script> document.mujformular.submit() </script>

prakticka rada? predelat to tak aby stranky fungovali s jakymkoli rozlisenim.
proc?
- udelate novou verzi stranek pro muj mobil? rozliseni je displeje je 120x120 ?
- na mojem pocitaci mam rozliseni 1600x1200

docela pomaha udavat rozmery relativne (width="100%"), spravne pouzivat css, atd.



rozhodování bych udělal nějak relativně, větší nebo menší než 1024. navíc není nic těžkého přidělat i verzi pro vyšší rozlišení, jenom přidám další pole, ve kterém jsou o něco jiné hodnoty rozměrů.
na mobily kašlu, zatím je to málo rozšířené

jinak dík za bleskovou odpověď ;)
Simka
Profil *
tak jsem vymyslel něco jako je tohle, dávám do každé stránky pomocí hlavicka.php, kde mám funkce, připojení k db atd. (ale nevím, jestli to je přesně, nemám k dispozici kód):

<?php
if (empty($_SESSION["rozliseni"])) {
?>
<script>
var rozliseni_sirka = screen.width();
window.location.href = "<?php echo $_SERVER[PHP_SELF]; ?>?rozliseni="+rozliseni_sirka;
</script>
<?php
$_SESSION["rozliseni"] = $_GET["rozliseni"];
unset($_GET["rozliseni"]);
}
?>


jiný soubor pak obsahuje zhruba toto:

<?php
require_once "hlavicka.php";
$par_1024 = Array(
table_width => 950
);
$par_800 = Array(
table_width => 630
);

function vykresli_hlavni_tabulku($par = Array()) {
echo "<table width='{$par["table_width"]}'>";
echo "a dalsi blbosti....";
}

<?php
if ($_SESSION["rozliseni"] > 1000) {
vykresli_hlavni_tabulku($par_1024);
}
else {
vykresli_hlavni_tabulku($par_800);
}
?>



v IE funguje všechno jak má, ale ve Firefoxu to přesměruje stránku na neco.php?rozliseni=1024 vždy, i když session existuje.

dále bych ještě potřeboval, že když mám stránku neco.php?promenna=neco, aby mě to nenapsalo neco.php?rozliseni=1024, ale neco.php?promenna=1024&rozliseni=1024

doufám, že jsem kód z té hlavy správně vydoloval :)
Simka
Profil *
tak jsem zjistil, že to byla úplně zbytečná chyba. ve Firefoxu jsem si zakázal ukládání cookies kvůli testování jiného příkladu...
Fary
Profil *
zkuste pouzit misto empty isset
Toto téma je uzamčeno. Odpověď nelze zaslat.