Keresés

Részletes keresés

m_kovacs Creative Commons License 2013.07.30 0 0 5079

Nagyonszépen közönöm a kímeritő magyarázatot.

 

Köszönettel m_kovacs

Előzmény: DJG (5078)
DJG Creative Commons License 2013.07.30 0 0 5078

Ebből pedig rögtön következik a következő kérdés: mit kell (érdemes) PHP-ben és mit JS-ben? Általános szabály van, persze, mindig akadnak esetek, amelyeket az általános szabályok nem tudnak kezelni, de ez kezdetben nem érdekes még. Amit csinálsz, amit meg lehet belőle ítélni ennyi alapján, az nagyon a PHP-re mutat, szerintem JS-sel egyáltalán nem is kellene most foglalkoznod. Még a PHP is kérdéses sok helyen. De vegyük az általánost először:

 

A felhasználó jön, kér egy weboldalt. El kell készíteni neki ezt az oldalt tartalommal, stílussal, képekkel, mindenestül. Amit csak lehet, ideértve a képek méretezését, elhelyezését, az egyes képi és szöveges elemek megformálását mind-mind HTML és CSS (stílus) eszközökkel kell megfogalmazni, egészen a maximumig, tehát amit csak el lehet érni ezekkel az eszközökkel. Ide tartozik a képméretezés is, amiről beszéltünk: ha mindenféle szabályok alapján kell a megjelenítendő kép méretét megadni, akkor ha csak lehet, ezt HTML-CSS szabályokkal fogalmazzuk meg, amelyeket majd a böngésző értelmez és alkalmaz, nem programokkal, tehát sem PHP, sem JS, amit akár a szerveren, akár a böngészőben, de valakinek végre kell hajtania, mert hiszen kódrészlet.

 

A PHP először ott jön be a képbe, amikor bármiféle okból a felhasználó kérte weboldalt nem tudjuk egy az egyben tárolni, és csak simán odaadni neki, amikor jön. Változó a tartalma (mint egy ilyen fórum itt, például, hiszen a hozzászólások állandóan változnak), máshonnan származik a megjelenítendő információ (bele kell tenni az aktuális időjárást vagy árfolyamokat, ezért nem lehet egyszer s mindenkorra letárolni), vagy számtalan egyéb ok lehet, de a lényeg az, hogy az ilyen weboldalt dinamikusnak hívjuk, mert valami okból időre időre, felhasználóról felhasználóra változik. Amint az előbbiben már leírtam, a felhasználó ilyenkor pontosan ugyanúgy HTML-t kap, mint az előző esetben, a különbség csak annyi, hogy statikus oldalnál a szerver előkapja a kész HTML-t és odaadja, dinamikusnál menet közben készíti el újra és újra, és odaadja. A felhasználó böngészője már nem lát eltérést a kettő között, neki mindegy, hogy a HTML honnan, mikor és miként született.

 

A harmadik lépés a JS. Arra alapvetően akkor van szükségünk, amikor a weboldal interaktív is: miután megérkezett a felhasználóhoz, tudnia kell vele valamit kezdeni a helyszínen. Alapesetben ugyanis egy oldal megjelenik, lehet nézegetni, de ha bármit csinál a felhasználó (tipikusan rákattint valami linkre), akkor annak az oldalnak vége, jön helyette egy másik. Ahhoz kell a JS, hogy ennél ravaszabb dolgokat lehessen csinálni a felhasználónál: ide kattint, ott változik, képek megjelennek, átúsznak, eltűnnek, kis mozi, képgaléria, szöveget szerkesztget, ilyesmi. Tehát mindenféle olyasmi, amit a felhasználó mozgására-kattintására reagál valamilyen módon ott nála a böngészőben, de nem arra szolgál, hogy a szerverről egy komplett új oldalt kapjon a régi helyébe, hanem hogy a meglevő egy oldalon belül bármit csináljon.

 

Ennek a fényében kellene végiggondolnod, hogy mire is van szükség ahhoz, amit éppen el akarsz érni. Nekem van egy olyan gyanúm, hogy még a második lépés sem feltétlenül szükséges neked most, a harmadikról már nem is beszélve.

Előzmény: DJG (5077)
DJG Creative Commons License 2013.07.30 0 0 5077

Válasszuk ketté. Majd mindjárt a kép méretezéséről is, de ami az elvet illet, bármi, ami PHP, az szükségszerűen a szerveren fut, az ottani számítógép értelmezi, hajtja végre, dolgozik meg vele. Bármi, ami JS, az szükségszerűen a felhasználó gépén, a böngészőben fut. Ha esetleg van két olyan dolog, ami nagyjából ugyanarra a végeredményre vezet, tehát (legalábbis látszólag) ugyanazt csinálja a PHP is, a JS is az adott esetben, akkor is igaz ez a kettéosztás.

 

A teljes folyamat ezeknél az oldalaknál három lépésből áll össze:

 

1. A szerveren vannak weboldalaid, lehetnek HTML, PHP vagy vegyes oldalak (HTML, aminek közepette PHP-s részletek is vannak). A szerver mindezt feldolgozza, végrehajtja belőle a PHP-t, és a végeredmény minden esetben HTML lesz.

 

2. A szerver ezt az elkészült HTML-t küldi a böngészőnek.

 

3. A böngésző fogja a HTML-t, és végignézi. Elsősorban kell neki a HTML maga, de ha az hivatkozik más fájlokra (tipikusan nagyon is, általában stíluslap, JS és képek), akkor sorban azokat is elkéri a szervertől. Amikor minden megvan (illetve, a sebesség kedvéért előbb is, de ez itt most lényegtelen), akkor nekiáll feldolgozni, hogy kész oldal legyen belőle, amit megmutat a felhasználónak. Ilyenkor hajtja végre a JS-t is.

 

Az 1. és a 3. tehát egymástól abszolúte független, annyira, hogy közte van még egy plusz lépés is.

 

Ami a képet illeti, nem, amikor a böngésző egy IMG-t talál, akkor a link alapján elkéri a képfájlt magát, úgy, ahogy a szerver azt neki elküldi. Semmi méret és egyéb megfontolás nem játszik szerepet ebben. A szerver elküldi, és amikor a böngésző megkapta, akkor a számára rendelkezésére álló utasítások alapján megjeleníti. Ezek az utasítások jöhetnek közvetlenül onnan az IMG-ből WIDTH és HEIGHT attribútumból, stílusból, bárhonnan, ahogy te is csinálod, de ez csak a megjelenítésre vonatkozik. Ha végezetül kisebbre kéred, mint maga a kép volt fizikailag, kicsinyíti, ha nagyobbra, felnagyítja; oda méretezi, ahova éppen szükséges. Mindez csak megjelenítési kérdés, nincs köze a képfájl eredeti méretéhez, mindegyik felhasználó ugyanazt kapja meg akkor is, ha ahányan nézik, mindegyikük éppen eltérő méretben fogja látni végül, mert más a gépe, más a böngészője és más a csillagok állása.

Előzmény: m_kovacs (5074)
m_kovacs Creative Commons License 2013.07.29 0 0 5076

Pedig ott volt .5069 hsz.

m_kovacs

Előzmény: NevemTeve (5075)
NevemTeve Creative Commons License 2013.07.29 0 0 5075

Ez érdekes, én eddig nem is láttam PHP-t a hozzászólásaidban, úgy értettem, hogy csak JS-ről van szó.

 

Ettől függetlenül a PHP azt csinál a képekkel, amit jónak lát... például a captcha tipikusan 'röptében' készül a szerveren, egyszeri használatra szól.

Előzmény: m_kovacs (5074)
m_kovacs Creative Commons License 2013.07.29 0 0 5074

Bocsánat a zavarásért, de nem hagy nyugodni a dolog.Zakatol az agyam, hogy megértsem a dolgokat.
Azt mondja :"Olyat nem csinálunk, hogy a böngésző előbb méretet küld fel, és akkor ennek megfelelően csinálsz képet a szerveren..."
Amit én akartam(már nem akarom):
<img  src="kep1.jpg"  alt="" title="xyz" border="0" style="<?php km_1('kep1.jpg') ?> ">
"<?php km_1('kep1.jpg') ?> " ennek az eljárásnak a kimenete pl: style="width:300px;height:400px;" Nem értem, hogy ezzel miért csinálok képet a szerveren?
Amikor a böngésző egy ilyen "http://somewhere.com/page1.php?foo=1&bar=2"  URL-t tartalmazó kérést küld a szervernek, akkor nem paraméterek(változókat) ad át?
Ha elfogadom amit mond, akkor mi értelme van az ilyen és hasonló függvényeknek? imagecreatefrompng($imgname),imagejpeg($image, "folder/file.jpg");


Köszönetel m_kovacs

Előzmény: DJG (5072)
m_kovacs Creative Commons License 2013.07.28 0 0 5073

Tisztelt " DJG" és "NevemTeve" fórumtársak!

Köszönöm mindkettőjük segítségét. Én végzetesen félreértettem a kép százalékos méretezését.
Kípróbáltam a javaslatot, ez a megoldás. Ahogy időm engedi, olvasok,olvasok,olvasok....
"Olyat nem csinálunk, hogy a böngésző előbb méretet küld fel, és akkor ennek megfelelően csinálsz képet a szerveren..."
Ezen a mondaton elgondolkodtam, s kérdezem hogy ez nem ugyanaz?
 <img src="kep.bmp" border="0" width="400px" height="100px" alt="xyz">
Mert hogy a kép eredeti mérete lehet éppen 800*500 is. Ekkor nem méretet küld a bőngésző? Vagy a kliensen lessz átméretezve?

Abból indultam ki,hogy ahol a kódban lehet konstans,ot lehet változó is.

Segítségüket megköszönve, tisztelettel m_kovacs

DJG Creative Commons License 2013.07.27 0 0 5072

Az alapvető probléma ott van, hogy reménytelenül összekevered a két oldalon (kliens, vagyis a böngésző, és a szerver) futó dolgokat. Ezt nem így kell megoldani, mert ebből csak szenvedés van, amint az látszik is. Ha a böngészőben meghatározott méretben akarod megjeleníteni a dolgokat, akkor ezt ott kell elvégezned (és erre a százalék a magától értetődően jó megoldás, ahogy NevemTeve javasolta). Olyat nem csinálunk, hogy a böngésző előbb méretet küld fel, és akkor ennek megfelelően csinálsz képet a szerveren, minden egyes látogatónak külön-külön, ennek semmi értelme, csak feleslegesen pocsékolod az erőforrásokat, és semmit nem nyersz rajta.

 

Egy kicsit tisztáznod kellene magadnak, alkalmasint ide vonatkozó irodalom olvasgatásával, hogy mire jó a PHP, mire jó a JS, és miként érdemes a kettő között a feladatokat szétosztani. Mert szét kell, és nem ilyen ad hoc módon, hanem alaposan végiggondolva, logikusan.

Előzmény: m_kovacs (5069)
NevemTeve Creative Commons License 2013.07.26 0 0 5071

> Azért, mert előre nem tudom a százalékot, hiszen futásidőben kérdezem le a felbontást.

 

Ezt még nem sikerült értelmeznem... ha pl a kép a teljesség szélesség 1/4-ét kellene elfoglalja, akkor az felbontástól függetlenül 25 százalék, nem?

Előzmény: m_kovacs (5069)
Törölt nick Creative Commons License 2013.07.26 0 0 5070

Köszi, de sajnos IE-ben ugyanúgy nem működik. Minden másban igen. De a többiben eddig is működött. 

Előzmény: crockl (5054)
m_kovacs Creative Commons License 2013.07.26 0 0 5069

Azért, mert előre nem tudom a százalékot, hiszen futásidőben kérdezem le a felbontást.

Azt hiszem a megoldás elvét megtaláltam, most már csak a kivitelezést kell megszülnöm.

 <img  src="kep1.jpg"  alt="" title="xyz" border="0" style="<?php km_1('kep1.jpg') ?> ">

Ez működik,most már csak a php függvényt kell megvalósítanom.

Köszönettel m_kovacs

Előzmény: NevemTeve (5068)
NevemTeve Creative Commons License 2013.07.26 0 0 5068

Akkor talán tegyük fel a logikus kérdést: miért nem jó a százalékos megadás?

<img src="laci.jpg" style="width: 50%">

<img src="feco.jpg" style="width: 50%">

 

m_kovacs Creative Commons License 2013.07.26 0 0 5067

29 kép van az oldalon.Pár hete próbáltam már a body onload -ot, azt tapasztaltam, hogy előbb betölti az eredeti mérettel, majd utána méretezi át.

Ez kicsit gyengébb gépen (van ilyen a családban) igen "érdekes" látvány. Már letettem a tervemről, megcsinálom több példányban, felbontástól függően.

Köszönöm a segítségét. Tisztelettel m_kovacs

Előzmény: NevemTeve (5066)
NevemTeve Creative Commons License 2013.07.26 0 0 5066

body.onload miért nem jó az átméretezésre?

 

<body onload='resize(\'img_id\', 120, 130)'>

 

Előzmény: m_kovacs (5065)
m_kovacs Creative Commons License 2013.07.26 0 0 5065

Köszönöm a segítőkészségét.

Szerintem amit akarok, az pont a százalékos méretmeghatározás,futásidőben.

Tanulmányoztam a resize függvényt.Idáig jutottam:

<!DOCTYPE HTML>
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CharSet=iso-8859-2"/>
<script>
function uj_meret(meret)
{
var uj_meret=0;
var percent=0.7;
 uj_meret=meret*percent;
  alert('Új meret : '+uj_meret);
  return uj_meret;
}
function resize (name, w, h)
{
    var fld= document.getElementById (name);
    fld.style.width= uj_meret(w)+'px'  ;
    fld.style.height=  uj_meret(h)+'px' ;
}
</script>
</head>
<img id="arrow" src="arrow.jpg">
<button onclick="resize('arrow','500','500')">500px x 500px</button>
</body></html>

DE MÉG NEM világos, hogy kell meghívni a resíze függvényt a kép betöltődése előtt, felhasználói beavatkozás nélkül.

 

Köszönettel m_kovacs

Előzmény: NevemTeve (5064)
NevemTeve Creative Commons License 2013.07.26 0 0 5064

Erre találták ki a százalékos méretmeghatározást, de ha programból akarod, akkor az előző programocska bizonyára segít (a resize függvényt tanulmányozd).

Előzmény: m_kovacs (5063)
m_kovacs Creative Commons License 2013.07.26 0 0 5063

Köszönöm!

Sajnos  öregszem, nem mindíg tudok világosan fogalmazni.

Az alapötlet az volt, hogy egy javascript függvény megállapítja a felbontást, és annak ismeretében adja meg a betöltendő kép új méreteit. Felhasználói beavatkozás

nélkül.

Pl:<img   src="kep.jpg"  alt="" title="xy" border="0" style="width:500px;height:168px;">

Ez a méret nem felel meg az adott felbontásanak, annak ismeretében más méretekkel kellene a képet betölteni.

Erre jöt az ötletem, s kérdeztem, hogy megvalósítható e valahogy.

<img   src="kep.jpg"  alt="" title="xy" border="0" style="width:javascript:uj_meret(500);height:javascript:uj_meret(168);"> (ez most szintaktikailag nem helyes)

A lényeg, nem fix méret, hanem függvénnyel előállított mérettel kellene a képet betölteni.

Köszönettel m_kovacs

 

 

Előzmény: NevemTeve (5062)
NevemTeve Creative Commons License 2013.07.26 0 0 5062

na jó, ennyit a fórummotorról. második próba:

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CharSet=iso-8859-2"/>
<script>
function resize (name, w, h)
{
    var fld= document.getElementById (name);
    fld.style.width= w;
    fld.style.height= h;
}
</script>
</head>
<img id="arrow" src="arrow.png">
<button onclick="resize('arrow','2cm','3cm')">2cm x 3cm</button>
<button onclick="resize('arrow','100px','100px')">100px x 100px</button>
</body></html>

Előzmény: NevemTeve (5061)
NevemTeve Creative Commons License 2013.07.26 0 0 5061

Pl:

<html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CharSet=iso-8859-2"/> <script> function resize (name, w, h) { var fld= document.getElementById (name); fld.style.width= w; fld.style.height= h; } </script> </head> <img id="arrow" src="arrow.png"> <button onclick="resize('arrow','2cm','3cm')">2cm x 3cm</button> <button onclick="resize('arrow','100px','100px')">100px x 100px</button> </body></html>

Előzmény: NevemTeve (5060)
NevemTeve Creative Commons License 2013.07.26 0 0 5060

Milyen függvényre?

Ha a betöltés során akarsz HTML-t írni, akkor használhatod a document.write-ot a kód belsejében:

 

<script>document.write ('<img...>');</script>

 

a betöltés után már nem használható a document write.

Előzmény: m_kovacs (5059)
m_kovacs Creative Commons License 2013.07.26 0 0 5059

Köszönöm. Ezt napok óta próbálom, de nem működik. lehet hogy szintaktikai hibám van.(width idézőjellel kezd, javascript idézőjelben,) Nem kerül a függvényre a vezérlés. Onclickre működik, a függvény jó értéket ad.

köszönettel m_kovacs

Előzmény: NevemTeve (5058)
NevemTeve Creative Commons License 2013.07.25 0 0 5058

Mondjuk beleírod a HTML-be: <img style="width: 12cm">

Előzmény: m_kovacs (5057)
m_kovacs Creative Commons License 2013.07.25 0 0 5057

Tisztelt hozzáértők!

Meg lehetne e azt csinálni, hogy az img width, height értékeknek javascript funkcióval  adjak értéket. Figyelembe véve azt, hogy -megbízható források szerint- a scriptek(function) csak valamilyen eseménykor futnak.(onclick,onload,onmouse... stb) Az onload úgy tudom, amikor az image már betöltődött, akkor keletkezik.

Valahogy betöltődés előtt kellene értéket adni a width, height értékeknek.Pl. width:javascript:meret1();  height:javascript:meret2(); 
Köszönettel m_kovacs

 

m_kovacs Creative Commons License 2013.07.25 0 0 5056

Köszönöm.Reggel óta próbáltam néhány hasonló megoldást, sikertelenül. Ez működik.

Köszönettel m_kovacs

Előzmény: NevemTeve (5055)
NevemTeve Creative Commons License 2013.07.25 0 0 5055

Annak a helyére kerülhet a függvényhívás:

<a href='' onclick="javascript:href=myveryownfunction(someparam)">Kattins ide -- masvalami.html</a>

Előzmény: m_kovacs (5053)
crockl Creative Commons License 2013.07.24 0 0 5054

document.getElementById('id')

Előzmény: Törölt nick (5050)
m_kovacs Creative Commons License 2013.07.24 0 0 5053

Köszönöm válaszát.Fárasztó volt ez a nap, meg a hőség is nyomja az agyamat, lehet hogy ezért, de első olvasatra nem kristálytiszta számomra a javaslata.

Ha a 'masvalami.html' egy konstans hivatkozás, akkor nem vagyok előbbre. Alszom rá, hátha megvilágosodom.

Köszönettel m_kovacs

Előzmény: NevemTeve (5052)
NevemTeve Creative Commons License 2013.07.24 0 0 5052

Esetleg így:

<a href='' onclick="javascript:href='masvalami.html'">Kattins ide -- masvalami.html</a>

Előzmény: m_kovacs (5051)
m_kovacs Creative Commons License 2013.07.24 0 0 5051

Tisztelt hozzáértők! Már megint elakadtam,kérem a segítségüket.

 

<a title="xyz" href="xyz.php" > <img id="kep" src="images/mult1.jpg" width='100%'  onmouseover="this.src='images/mult2.jpg'" onMouseOut="this.src='images/mult1.jpg'" target="_self" ></a>

Ez a sor működik! DE én a felbontástó függően a href-be dinamikusan szertnék file-nevet generálni.Na ez már nem működik. A file-név megszületik, létező file, csak nem tudom hogy kell rávennem, hogy betöltődjön.

 

<a title="xyz" href="javascript:felbontas('xyz')" > <img id="kep" src="images/mult1.jpg" width='100%'  onmouseover="this.src='images/mult2.jpg'" onMouseOut="this.src='images/mult1.jpg'" target="_self" ></a>

 

Köszönettel m_kovacs

Törölt nick Creative Commons License 2013.07.24 0 0 5050

Sziasztok! Egy kérdésem lenne, de előrebocsátom, hogy nem vagyok nagy javascript szakértő.

 

A feladat az, hogy link1, 2, n fölé vive az egeret link default automatikusan megváltozzon, ami Chrome-ban, Firefoxban működik is, de IE-ben nem.

 

Jelenleg így néz ki a kód:

 

link 1,2, n:

 

<a href="a.html" onmouseover="document.links['id'].href='1.html'; document.images['id'].src='images/1.jpg'">text1</a>

<a href="b.html" onmouseover="document.links['id'].href='2.html'; document.images['id'].src='images/2.jpg'">text2</a>

(...)

<a href="n.html" onmouseover="document.links['id'].href='n.html'; document.images['id'].src='images/n.jpg'">textn</a>

 

link default:

 

<a href="a.html" id="id"><img src="images/1.jpg" id="id"/></a>

 

Előre is köszönök minden segítséget!

 

 

 

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!