Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:718:2601:1f7:d1ab:fc...–

peter
JavaScript, AJAX, jQuery › funkce s parametrem..
16. 3. 2015   #200340

Aha. V pohode. Lepsi to priste rozepsat, vsechny ty moznosti. Ja si to automaticky spojil v jedno a myslel jsem, ze zavorkou chces prave zduraznit to esko.

document.getElement(s)By -> ID, class, name - ty funkce prave totiz jsou
getElementById
getElementsByTagName
getElementsByClassName
getElementsByName - to se moc nepouziva
Class tam zadne neni, protoze class je mysleno jako objekt. A nemusi to byt vztazene k objektu document. A ID je prvni velke, druhe male. Proste je to vymyslene na pikacu, misto jedne funkce getElementsByParam('id'), treba.


 

peter
JavaScript, AJAX, jQuery › Oprava časování
16. 3. 2015   #200339

:)))

#15 lukas balaz ti napsal

var currentdate = new Date(); var imagenumber = Math.round(currentdate.getTime() / (1000*60*60*24))%9;

Coz, kdyz si vynasobis kalkuckou da 86400000 (tech 1000*60*60*24). Tak vysvetluji, jak na to prisel. Ze je to nasobeni milisekundy * sekundy * minuty * hodiny, pocet milisekund pro jeden den.
 - par prispevku na to se tam objevuje jeste to nasobeni
- ondrej v #32 tam ma chybne 84000000
- v prispevku #40 jsi to spravil ty na 86400000
- ve #42 jsi to zmrvil uplne :)  datum.getTime() /1000 * 60 * 60 * 24 * 86400000 - deleni ma prednost
 

Tak jen, abys mel takovou predstavu, co se deje...
- new Date().getTime() - je casove razitko, cislo pocet ms od roku 1970, silene velke cislo [A]
- toto cislo [A] podelis poctem milisekund pro jeden den [B] (coz je to nasobeni 1000*60*60*24) a dostanes prekvapive cislo dne. coz je 0 - 365.25 + vsechny dny od roku 1970
- kdyz toto cislo zaokrouhlis a pak podelis celociselne poctem obrazku, tak dostanes 0 az pocet obrazku
Cili, ta lukasova myslenka na zacatku je spravna a ten kod v prispevku #40 by ti mohl teoreticky fungovat.

+ 4 hodiny docilis jak? kdyz vis, ze 24h se pocita jako 1000*60*60*24 [B]
A = new Date().getTime();
B = 1000*60*60*24;
C = 1000*60*60*4;
D = obrazky.length;
A / B + C (bud plus nebo minus, kdyz to mas posunute o 4h)
(A / B + C) % D

% je modulo, zbytek po deleni na cela cisla, mozna znas ze zakladky z matiky
% = floor( ( x/y - floor(x/y) ) * y ) // x = 10, y = 7, zbytek po celociselnem deleni by mel vyjit 3
% = floor( ( 10/7 - floor(10/7) ) ) * 7 // floor orezava desetiny, cili z 123.456 udela 123.000
% = floor( (1.43 - 1) * 7 ) = floor( 0.43 * 7 = floor( 3.01 ) = 3
Cili, kdyz jakekoliv cislo vydelis pres modulo deleni, tak vysledkem bude 0 - D (pro priklad (A / B + C) % D)

http://www.jakpsatweb.cz/javascript/objekt-date.html
Ale tak v celku bys to mohl udelat i pomoci getDate(), mozna a getHour()
A = new Date().getDate();
D = obrazky.length;
alert([A, D, A/D, A%D]);
Jen pomoci milisekund ti to bude vybirat cele pole rovnomerne.
Co tim myslim? Rekneme, ze pocet obrazku je 10, unor ma 28 dni, brezen 31
getTime: unor 0-9, 0-9, 0-7, brezen 8-9, 0-9, 0-9...
getDate: unor 0-9, 0-9, 0-7, brezen 0-9, 0-9... // novy mesic bude zacinat nulou

Navic, je tu takova drobnost. JS bezi na pc uzivatele. Kdyz si zmenim cas v pc, tak i js jej bude mit zmenene.
A jeste je tu druha takova vec. Pokud je stranka otevrena, obrazek se sam nezmeni, dokud neni udelany refresh. musel by jsi obnovit stranku nebo pouzit casovac a kontrolovat treba po 5 min, jestli nenastala zmena casu.

peter
PHP › rada z php zarovnanie atd..
16. 3. 2015   #200319

Jo, a co pak? Kdyz to funguje v sql? Tak muzes dodelat php kod. Aby jsi mohl pridavat uzivatele. Aby jsi mohl jako admin zadavat bonusy. Abys mohl bonusy prirazovat uzivatelum. Fura prace kvuli takove prkotine, ale jinak to nejde :)

Ted treba delam program na zasilani novinek, newsletter.
- pridat, smazat mail od ktereho uzivatele  smazani pres klik v mailu
- seskupovat maily do skupin
- nastavit plan odesilani
- zkontrolovat, zda zaslani vyslo a poznacit to jako proveden (mozna nejake logovani)
- registrace uzivatelu
...

peter
PHP › rada z php zarovnanie atd..
16. 3. 2015   #200318

Snazil jsem se ti to vysvetlit co nejlip jsem umel. Muzu to zkusit jeste jednou, ale musis napsat, co presne nechapes. Ocisluju to. Promin, ale nemam chut se vyptavat, ktera konkretni cast ti neni jasna dalsim prispevkem, kdyz jsi to mohl napsat uz hned.
Navody, jak se pracuje s phpmyadminem je mozne vygooglovat. Bohuzel se verze od verze uplne meni, ani ja nemam stejnou verzi, jako ty. Kdyz bych ti tam rekl, ze mam na obrazovce to a to menu, tak ty tam treba nektere polozky nemas nebo jsou skryte. Coz se pak strasne neprijemne hleda. Cili, lepsi podle nejakeho navodu si s tim chvilku sam hrat....

1)
tab_uziv (id_uziv, jmeno, prijmeni dalsi sloupce)
1, ondrej, sykora, ...
2, jaroslav, kaval, ...
Vytvor si tabulku tab_uziv. Zadej tam sloupce id_uziv, jmeno, prijmeni. Id_uziv nastav jako autoincrement a index (klic).
Vloz tam data pro dva uzivatele: ondrej sykora a jaroslav kaval. (predpokladam, ze tyto operace pres phpmyadmin zvladas)

2)
tab_bonus (id_bonus, nazev, delka, dalsi sloupce)
1, level 4, mesic ...
2, level 2, rok ...
3, level 1, 0 ...
Vytvor tabulku tab_bonus. Sloupce id_bonus (autoincrement + index), nazev, delka. Vloz tam data, definice levelu (schvalne jsem jmena levelu dal kazdy jinak)
"level 4", 30
"level 2", 365
"level 1", 0

3)
tab_uziv_bonus (id_bonus, id_uzivatel, cas ukonceni bonusu)
1, 3,
1, 2
2, 3
2, 1
Vytvor tabulku tab_uziv_bonus (ktera bude propojovat uzivatele s bonusem) se sloupci id_bonus, id_uzivatel, cas (datetime). Zadny autoincrement, oba indexy. Napl daty:
1, 3, (datetime) -- prvni cislo je id z tabulky bonus; druhe cislo je id uzivatele; treti cislo je casove razitko: NOW()+365 dni, treba (to nevim, zda pujde pres phpmyadmina zadat) Na ukazku tam staci ale jakekoliv cislo
1, 2 ...
2, 3 ...
2, 1 ...

Jak to funguje? Mas tabulku uzivatele. Mas tabulku s nazvy bonusu a delkou jejich trvani. a mas tabulku, ktera prirazuje bonus nebo vice bonusu k uzivateli, ktera ma sloupec s koncem platnosti bonusu.
Pokud to vsechno v phpmyadminovi mas, tak kliknes na zalozku Sql a tam si postupne zadas ty 3 sql prikazy, co jsem napsal. Snad jsou ok. Melo by ti to pokazde vypsat jinou tabulku.

SELECT jmeno, prijmeni FROM tab_uziv WHERE id_uziv=2
vypise seznam uzivatelu

SELECT c.jmeno, c.prijmeni, b.nazev, a.cas
FROM tab_uziv_bonus a
  LEFT JOIN tab_bonus b ON b.id_bonus = a.id_bonus
  LEFT JOIN tab_uziv c ON c.id_uzivatel = a.id_uzivatel
vypise seznam uzivatelu + nazev bonusu (z tab2) + datum jeho ukonceni (z tab3)

SELECT c.jmeno, c.prijmeni, b.nazev, a.cas
FROM tab_uziv_bonus a
  LEFT JOIN tab_bonus b ON b.id_bonus = a.id_bonus
  LEFT JOIN tab_uziv c ON c.id_uzivatel = a.id_uzivatel
WHERE a.id_uziv=2
  AND a.cas>NOW()
vypise uzivatele s id=2 a jeho bonusy, pokud je cas ukonceni vetsi nez NOW (now by melo byt aktualni datum)
Ty prikazy jsem nezkousel, ani tabulky nevytvarel, takze tam muze byt chyba. Ale verim, ze s googlem ji dokazes najit a opravit.

peter
JavaScript, AJAX, jQuery › funkce s parametrem..
16. 3. 2015   #200315

Matěj Andrle - pro id je to bez s, hledas jeden element

Fredy

Udelej maly demo kod a dej sem funkcni kod.To, cos napsal je fajn, ale to nemuzu spustit a dopisovat se mi to co? Nechce.

Zkus pouzivat alerty, vypisovat si, co v dane promenne prave je. 

function maximizeBox(boxId, boxHeight) {
alert(boxId);
alert(boxHeight);

onClick="maximizeBox(DivID, 94px)"
to je, jako bys v js napsal
maximizeBox(DivID, 94px)
coz je samozrejme nesmysl. DivID je promenna, ano, ale, co je 94px? neni to ani cislo 94 ani promenna. 

onClick="maximizeBox(DivID, '94px')"
onClick="maximizeBox(DivID, &quote;94px&quote;)"
onClick='maximizeBox(DivID, "94px")' 
peter
JavaScript, AJAX, jQuery › Oprava časování
16. 3. 2015   #200314

ms * s * min * hod * dny * roky
1000 * 60 * 60 * 24 * ...
86400000 * ...
Nevim, kde jste vzali na zacatku v tom kodu 84.... :) Asi preklep.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý