Hirdetés

Keresés

Új hozzászólás Aktív témák

  • sedios
    tag

    Megvan a hiba oka. Az okozza, hogy a document.writeln nem működik az oldal betöltődése után. Egyszerűen ennyi, ilyen szar :D

    Használhatsz saját megoldást a szöveg kiírására, pl. valami hasonlót:
    function my_writeln(str){
    document.body.appendChild(document.createTextNode(str));
    }

    (Nem próbáltam minden böngésző alatt, remélem működik. Az elv mindenesetre így is látszik :) )

    ez egyrészt a változóimat is stringnek olvassa be, másrészt azt hittem, hogy én nézek el vmit nagyon.

    ilyen kérdéses működéssel bíró ojjektumokkal nem szórakozok, inkább megírom máshogy a progit. (gyk. előre létrehozok kb láthatatlanul mindent, és utána azokat módosítgatom..)

    mindenesetre köszi a helpet!

  • sedios
    tag

    Tudsz mutatni debugolható forráskódot, továbbá elmondod, hogy milyen böngészőn jön elő a probléma? Természetesen egy függvényhívástól nem akad el a javascript, továbbá nem szabad új ablakokat sem nyitogatnia csak úgy találomra, tehát egészen biztos vagyok benne, hogy máshol van a probléma.
    (Közben kipróbáltam, komolyan, mint ha nálam bugos lenne a document.writeln. Vagy legalábbis valamilyen zavart érzek az erőben :D )

    természetesen: lecsupaszítottam amennyire csak tudtam, így már lehet futtatni:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>#</title>
    </head>

    <body>

    <script type="text/javascript">
    function DrawControls() {

    document.writeln('hello');
    }

    function CheckGuess() {
    DrawControls();
    }

    DrawControls();
    DrawControls();
    DrawControls();
    DrawControls();

    </script>
    <input type="button" value="tipp!" onclick="CheckGuess()" />
    </body>

    </html>

    szerk: FF 3.5.8, tűzbogár meg ugye sokmindent nem ír ki erre

  • sedios
    tag

    Ennek működnie kell, valami más gond lesz. Amúgy a document.writeln kb. semmire sem használható, mert nem hozzáfűz a dokumentumhoz, hanem felülírja, szóval kezdd ezzel :)

    A javascript-ben nincsenek namespace-ek. Vannak globális és lokális változók és ennyi.

    Ha szekvenciálisan egymás után írok document.writeln-eket, akkor pöpecül bővítik az oldalt, és nekem erre van szükségem pont. (új sorokat adok a táblához)

    Sőt, ha alul írott A() függvényt hívogatom egymás után, úgy is rendesen bővíti. De ha egy egyébként üres B() függvényből hívom A()-t, akkor új ablakot kezd.

  • Sk8erPeter
    nagyúr

    Ok, lehet, hogy egy kicsit túl kemény volt a megfogalmazás, de a lényegi része szerintem igaz és sokszor nem hangsúlyozzák ki eléggé. Bármelyik ágát is nézed az informatikának, mindenhol az van, hogy az iskolák/egyetemek megalapozzák ugyan a tudást, adnak egy szemléletmódot, de a konkrét kérdésekre a válaszokat magadnak kell megtalálni. És itt elsősorban az elhivatottság a kérdés, hogy élvezed-e és érdekel-e annyira, hogy utánanézz, szenvedj vele, stb. (meg persze kell érteni angolul, de gondolom fel sem merült senkiben, hogy ezt meg lehet úszni :) )

    Ez pontosan így van, nem is kérdés. Pl. hiába vannak programozásról előadások az egyetemen vagy akárhol (vagy hiába olvas róla valaki könyvet), ha valaki nem gyakorol, akkor úgyis megbukik az első számonkérésen. :D Erre mondtam én is, hogy a suli önmagában semmit sem ér, és ez főleg az informatikára igaz, hiába tanulod meg az elméletet, úgyis a gyakorlati alkalmazás a lényeg.

  • EmberXY
    veterán

    Ok, lehet, hogy egy kicsit túl kemény volt a megfogalmazás, de a lényegi része szerintem igaz és sokszor nem hangsúlyozzák ki eléggé. Bármelyik ágát is nézed az informatikának, mindenhol az van, hogy az iskolák/egyetemek megalapozzák ugyan a tudást, adnak egy szemléletmódot, de a konkrét kérdésekre a válaszokat magadnak kell megtalálni. És itt elsősorban az elhivatottság a kérdés, hogy élvezed-e és érdekel-e annyira, hogy utánanézz, szenvedj vele, stb. (meg persze kell érteni angolul, de gondolom fel sem merült senkiben, hogy ezt meg lehet úszni :) )

    "de a konkrét kérdésekre a válaszokat magadnak kell megtalálni"

    Ezt én is így gondolom, maximálisan egyetértek vele. Engem is érdekelnek a weboldalak készítésével/programozásával kapcsolatos dolgok, én "hobbi szinten" foglalkozok ezzel, rengeteget olvasok, nézelődöm a témában, és ami a legfontosabb, gyakorlom, próbálgatom a script írást, mert csak a saját tapasztalataim után mondhatom azt, hogy értem azt, amit csinálok. Nyilván rengeteget kell még tanulnom, a legfontosabb, hogy értsem, hogy mi miért és mitől van, ezt pedig csak saját tapasztalás útján lehet megtanulni, ezt én is így gondolom.
    Ezzel együtt azonban ötleteket, némi segítséget szerintem nem szégyen kérni, és az okosabbtól nem szégyen tanulni. :R

  • Sk8erPeter
    nagyúr

    Már párszor leírtam más topikokban is, de még egyszer. Ha arra vársz, hogy megtanítsanak és beleöntsék a tudást a fejedbe és nem vagy képes magadtól, tutorial-ok és dokumentáció alapján megtanulni, akkor inkább válassz más szakmát. (És ezt vedd konstruktív jó tanácsnak, ne úgy értsd, hogy leszólok a magas lóról)

    Tudtommal a srác középsuliba jár, majd később rájön, hogy önképzés, saját tudása bővítése nélkül a suli önmagában semmit sem ér, de ezt finomabban is meg lehet fogalmazni. :P
    Inkább biztatni kellene arra, hogy szorgalmasan képezze magát, nem azt kéne kidomborítani, hogy válasszon más szakmát, ha nem megy neki - biztos menni fog neki is később, ha sokat gyakorol. Kicsit máshogy hangzik. :D Eleinte jólesik az embernek egy kis segítség, egy kis rugdosás, hogy elinduljon az úton, aztán már magától is könnyebben rájön a dologra. Inkább kérdezzen sokat, mint hogy elmenjen a kedve!

  • Sk8erPeter
    nagyúr

    Ööö, hol akadtál el? Egyáltalán ennél a feladatnál hol lehet elakadni?

    for (i=0;i<11;i++){
    document.write(Math.pow(2,i));
    }

    "3-mal való osztásainak maradékait"
    Ez a része kimaradt. :P
    Akkor kiegészítve:

    var hatvany;
    for (i=0;i<11;i++){
    hatvany=Math.pow(2,i);
    document.write(hatvany%3);
    }

  • ktg3
    őstag

    Még ki is emelted a különbséget.

    A document.write egy függvény, ami azt csinálja, hogy a dokumentum végére írja azt, amit paraméterként kap és nem tér vissza semmivel. (Tehát gyakorlatilag nevezhetjük eljárásnak is).
    y.innerHTML=document.write("xy")
    Ez a sor azt csinálja, hogy
    1. a dokumentum végére írja, hogy "xy"
    2. a document.write metódus nem tér vissza semmivel
    3. az y innerHTML tulajdonságát megpróbálod átírni a document.write visszatérési értékével. Ekkor a document.write visszatérési értéke automatikusan stringgé alakul, vagyis az értéke az lesz, hogy "undefined", ez kerül bele az y tartalmába.

    A második verziód azért működik jól, mert az a helyes megoldás.

    köszi

    van itt még egy kérdés

    amit így dinamikusan létrehozok , táblázatot, azt hogy tudom formálni?
    mert az egész táblázatot, tudom, de én olyat szeretnék, hogy 1-1 sort is tudjak?

    mert ugye javascripttel hozom létre, de csak a tartalmát tudom formázni, magát a sort meg a cellát nem
    illetve nem tudom, hogy hogy kéne

    mert a vella taartalmát azt tudom formázni de az édes kevés
    olyat szeretnék, hogyha a tábla sora fölé húzom az egeret akkor változzon a backgrond

    ilyesmit szeretnék, csak a táblázat midnen sorára legyen érvényes--->
    a dinamikusan létrehozottakra is

    <html>
    <head>
    <script type="text/javascript">
    function insRow()
    {
    var x=document.getElementById('menu').insertRow(0);
    var y=x.insertCell(0);
    y.innerHTML="<a href='http://www.facebook.com'>xxx</br>";
    }
    </script>
    </head>

    <body>
    <table id="menu" border="1">
    <tr onmouseover="style.backgroundColor='#FFD700';" onmouseout="style.backgroundColor='#839CBF'">
    <td><a href="http://w3schools.com/js/js_statements.asp">yyy</a></td>
    </tr>

    </table>
    <br />
    <input type="button" onclick="insRow()" value="Insert row">

    </body>
    </html>

  • Sk8erPeter
    nagyúr

    Biztos nincs felesleges pénzük ilyesmire. Ne vedd el a kedvét, lehet, hogy most tanulja a honlapszerkesztést.
    Nem elvenni akarom a kedvét, hanem szólni, hogy rossz az irány.
    Olyan nehéz lett volna honlapkészítés előtt megnézni néhány weboldalt, hogy képben legyen, hogy kell 2009-ben kínéznie egy sitenak? Vagy elolvasni egy 1996-nál frissebb könyvet a honlapkészítésről? Az nem profizmus kérdése, hogy feltűnjön, hogy a frame-ek rosszul vannak beméretezve, a nyitóoldal funkció nélküli, a betűtípusuk rosszak? Hogy egyes linkek új ablakban nyílnak, egyesek meg nem, mindenféle rendszer nélkül? Hogy esetleg le lehet tölteni valahonnan egy 2 szintű menü scriptjét és akkor ki lehet dobni az összes olyan aloldalt, amelyen csak 2-3 link szerepel? Ezek mind olyan dolgok, amelyekkel böngészés közben nap mint nap találkozik mindenki, nem lehet esetleg megnézni, hogy mások hogyan csinálják?
    Lehet, hogy nem esik le egyből, de ez építő jellegű kritika. Igenis, ha valaki honlapot szeretne készíteni, az előbb nézzen meg más honlapokat, nézzen utána, hogyan kell ezt készíteni. Ez egy olyan elvárás, aminek teljesítéséhez nem kell kőprofinak lenni, csak egy kicsit igényesnek, hogy ha kiadsz a kezed közül valamit, akkor az a lehető legjobb legyen.

    Nyugi má', nem kell nekem esni, nem én csináltam azt a nyomorult honlapot... :D
    Egyetértek, de ne rám legyél már mérges. :DDD

  • fordfairlane
    veterán

    A linkelt script nem fog működni frame-es oldalon, sőt, nem is nagyon fogod úgy átalakítani, hogy működjön. Sőt, a frame-ek miatt valószínűleg semmilyen ehhez hasonló script sem fog működni. (És ez talán jól is van így, az ilyen hóesés effekt nagyon poénos lehetett 1996-ban, de 2009-ben nagyon gáz)

    Amúgy nem szeretnélek nagyon megbántani, de talán a munkahelyed jobban járna, ha rábízná egy szakemberre a weboldalának elkészítését.

    Egyetértek, a backgroundban animáló hópelyhek egyenlő az ízlésterrorral. Sokkal ízlésesebb magát az oldal színeit, a fejlécet színben igazítani az adott szezonhoz.

  • vancha2
    aktív tag

    Van. A &, | bitenként elvégzett műveletek, az && és || pedig logikai műveletek. Hacsak nem kifejezetten bitenkénti műveleteket szeretnél végezni, akkor mindig a && és || operátorokat használd.

    Most én is tanultam valamit. :)

  • Bici
    félisten

    Akkor a nagybetűket törlés helyett alakítsd kicsire.

    p_sender.value=p_sender.value.toLowerCase().replace(/[^a-z]/g,'');

    basszus, tényleg. :D Köszi!

  • Bici
    félisten

    Én meg a Tiédet nem értem, de utánanézek a w3schools-on, hogy értsem is.
    Pedig nagyon egyszerű. A függvény hívást az űrlapelem onkeyup és onchange eseményére kötöm rá. Az első akkor fut le, ha begépelsz 1 betűt (és felengeded a billentyűt), a másik meg akkor, ha mondjuk bemásolsz valami szöveget az űrlap elembe vagy simán csak elveszti a fókuszt. Pareméterként az űrlap elem objektumát adom át, így a szövegmanipulálásnál egyből tudom, hogy melyik űrlapelem eseménye hívta meg a függvényemet. Ezzel egyrészt megspórolom a DOM-ban való turkálást, másrészt a függvénynek így teljesen mindegy lesz, hogy melyik input-nak az értékét kell módosítsa.

    A függvényben egy egyszerű reguláris kifejezéssel működő betűcsere van. A reguláris kifejezés mindenre karakterre match-el, ami nem a-z közötti betű. A reg. kifejezés végén a g kapcsoló mondja meg, hogy ne csak az első előfordulást cserélje, az i kapcsoló meg azt, hogy a kis-nagybetűk közötti különbséget ne vegye figyelembe. A replace második paramétere az üres string, erre cserélünk minden olyan karakter, amire ráillik a pattern-ünk.

    Köszi, csak a "/[^a-z]/gi" részt nem értettem. De már értem, megnéztem a w3schools-on. :)
    Viszont az "i" nem kell a végére, mert így engedi a nagybetűket is, nekem meg csak kicsik kellenek.
    Köszi a segítséget! :R

  • Bici
    félisten

    A kódodat nem nagyon értem, de ha ilyen hosszú, akkor már régen rossz.

    Például itt egy javascript függvény, ez azt csinálja, amit szeretnél:

    function strip_nonalpha(p_sender){
    p_sender.value=p_sender.value.replace(/[^a-z]/gi,'');
    }

    És a hozzá tartozó ürlapelem:

    <input type="text" name="szoveg" value="" onkeyup="strip_nonalpha(this);" onchange="strip_nonalpha(this);">

    Köszi, kipróbálom.
    Én meg a Tiédet nem értem, de utánanézek a w3schools-on, hogy értsem is. :)

    Az enyém úgy műxik, hogy megvizsgálja, hogy az éppen leütött karakter szerepel-e az általam definiált karaktersorozatnak.
    A kód legalább két értékadással rövidíthető lenne, csak az átláthatóság keddvéért csináltam így. De már látom, hogy túl nyakatekert megoldás.

  • Bici
    félisten

    Bármelyik javascript tutorial megfelel, a feladathoz semmilyen extra dolgot nem kell használni. W3Schools-os javascript leírást ajánlom, de lehet, van könnyebben olvasható is a neten.

    Nem csak az érdekel, hogy hog ylehet megcsinálni, hanem hogy hogy érdemes.
    Ennél a feladatnál a józan észt leszámítva nagy trükköt nem tudsz bevetni, cserébe jó hosszú lesz a kódod.

    azt már tudom, hogy az "onSubmit" fv.-nyel kell megoldani.
    Az onsubmit alapvetően nem függvény, hanem egy esemény, ami akkor hívódik meg, amikor az adott űrlapot elküldöd. (Nyilván, az onsubmit esemény értéke egy függvény).
    A különféle ellenőrzéseket /extrákat rákötheted még az űrlap elemek onfocus és onblur eseményeire, ízlés szerint. Az onfocus akkor fut le, amikor az űrlap elem aktív lesz (pl. ráklikkelsz, rámész tabulátorral), az onblur pedig amikor inaktív lesz. Továbbá kisérletezhetsz az onchange eseménnyel is, ez akkor fut le, ha változik az űrlapelem értéke, vagy elveszíti a fókuszt. (Utóbbiban nem vagyok 100%ig biztos). Ezt úgy értsd, hogy pl. egy szövegdoboznál minden egyes betű beírásakor/törlésekor le fog futni. Pl. jelszó beírásnál ezzel tudod látványosan ellenőrizni, hogy elég hosszú-e a jelszó.
    (alapból piros x mellette, onchange-nél meg adott feltételek esetén lecseréled zöld pipára vagy visszacseréled piros x-re)

    "Az onsubmit alapvetően nem függvény, hanem egy esemény, ami akkor hívódik meg, amikor az adott űrlapot elküldöd."

    Bakker, tényleg. :D Némi ActionScript tudás után erre rá kellett volna jönnöm. :B

    A leírásod alapján nekem úgy tűnik, hogy a JS hasonlít az AS-re, mert eseményvezérelt, vagy hogy szokás szépen mondani. :)
    Köszi a infókat, szerintem már menni fog. :R

  • faster
    nagyúr

    tökéletes, köszönöm :R
    nem gondoltam volna, hogy ennyire egyszerűen megoldható, ráadásul js nélkül

    [Szerkesztve]

    Nincs mit. Erre tényleg fölösleges js-t használni, ha sima form submitról van szó.

  • faster
    nagyúr

    adott egy űrlap, amelyet php-val dolgozok fel, method=post. ezen az űrlapon van egy select mező, multiple tulajdonsággal, vagyis egy lista, amelyből több elemet is ki lehet választani.
    szeretném valahogy elérni, hogy az űrlap elküldésénél az összes kiválasztott elemet berakja valahogy a POST tömbbe, ne csak az utolsót. elméletben van fogalmam arról, hogy kéne (egy js függvény, ami az űrlap elküldésénél egybefűzi a select-ben kiválasztott összes elemet, majd azt küldi tovább), csak sajnos nem igazán értek a javascripthez. valakinek esetleg ötlete, hogy hogyan kéne ezt megírni? (nem feltétlenül kész kódot várok, mindenféle segítség hasznos lehet).

    A select mező name atribútumában a név legyen php-s array szintaktikájú:

    <select name=''bigyok[]'' multiple>
    ...
    </select>


    Post után kapsz egy tömbváltozót, ha volt kijelölve elem a selectben:

    $bigyok = $_POST[''bigyok''];

    if(is_array($bigyok)) {
    foreach($bigyok as $bigyo) {
    ...
    }
    }

Új hozzászólás Aktív témák

Hirdetés