JS -> php
Sziasztok.
Szenvedek egy problémával és nem megy (azé' szenvedek :).
Input textből kinyert értéket szeretnék megjeleníteni egy SPAN-on, majd ezt az értéket átadni egy php változónak.
A szenvedés oka épp a technológiai-elvi különbség. A JS lokálgépen fut, míg a php szerveren.
Tehát, ami változik lokálon, arról nem tud a szerver. Pedig jó vóna! :)
Az onBlur, illetve az onChange megoldja a SPAN.innerText értékének megváltozását, de ettől még nem lesz $_REQUEST()-ben semmi sem.
A form submit pedig újratölti az oldalt, így kiüriti az innerText.value-t. Igaz, ekkor már van $_GET/$_POST értékem, de nem tudom ezzel az értékkel frissíteni a SPAN.innerTextet.
Stróbáltam JS függvények variálásával, de nem megy...
:(
Már kezdek belezavarodni a függvények meghívásába...
A cella, ahova kell az input.
A cella, aminek az értékét megváltoztatnám-tom...
A php kód szerzi meg amegváltoztatott és elküldött(!!) értéket
Hogyan tudom megoldani, hogy submit után ne az elso_kiirás() értéke, hanem a megváltozott érték jelenjen meg az u_MSG SPAN-on?
(A cookie-val épp most prószálkozom, de -nekem- nyögvenyelős.)
Ötletelek: hidden inputnak átadni??? de az is törlódik lapfrissítéskor...
Köszi!
■ Szenvedek egy problémával és nem megy (azé' szenvedek :).
Input textből kinyert értéket szeretnék megjeleníteni egy SPAN-on, majd ezt az értéket átadni egy php változónak.
A szenvedés oka épp a technológiai-elvi különbség. A JS lokálgépen fut, míg a php szerveren.
Tehát, ami változik lokálon, arról nem tud a szerver. Pedig jó vóna! :)
Az onBlur, illetve az onChange megoldja a SPAN.innerText értékének megváltozását, de ettől még nem lesz $_REQUEST()-ben semmi sem.
A form submit pedig újratölti az oldalt, így kiüriti az innerText.value-t. Igaz, ekkor már van $_GET/$_POST értékem, de nem tudom ezzel az értékkel frissíteni a SPAN.innerTextet.
Stróbáltam JS függvények variálásával, de nem megy...
:(
Már kezdek belezavarodni a függvények meghívásába...
<script language="JavaScript" type="text/javascript">
var d=new Date();
var monthname=new Array("Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December");
var dayname=new Array("Vasárnap","hétfõ","kedd","szerda","csütörtök","péntek","szombat");
var TODAY = "<b>" + d.getFullYear() + ". " + monthname[d.getMonth()] + " " + d.getDate() + ". " + dayname[d.getDay()] + "</b>";
function elso_kiiras()
{ var mikor= d.getHours()+1+':00';
document.getElementById('um_MSG').innerText='Mérés ideje: '+ mikor;
}
function kukiba(em)
{var lejarat = new Date();
var egyedi_m = em;
lejarat.setTime(d.getTime() + 1800);
setCookie("egyedi_meres_ideje", em, lejarat);
}
function kiir (mit)
{ document.getElementById('um_MSG').innerText='Egyedi mérés: '+ mit;
kukiba(mit);
}
function elkuld()
{var egyedi_m;
egyedi_m=document.getElementById('egyedi').value;
kukiba(egyedi_m);
}
</script>
</head>
var d=new Date();
var monthname=new Array("Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December");
var dayname=new Array("Vasárnap","hétfõ","kedd","szerda","csütörtök","péntek","szombat");
var TODAY = "<b>" + d.getFullYear() + ". " + monthname[d.getMonth()] + " " + d.getDate() + ". " + dayname[d.getDay()] + "</b>";
function elso_kiiras()
{ var mikor= d.getHours()+1+':00';
document.getElementById('um_MSG').innerText='Mérés ideje: '+ mikor;
}
function kukiba(em)
{var lejarat = new Date();
var egyedi_m = em;
lejarat.setTime(d.getTime() + 1800);
setCookie("egyedi_meres_ideje", em, lejarat);
}
function kiir (mit)
{ document.getElementById('um_MSG').innerText='Egyedi mérés: '+ mit;
kukiba(mit);
}
function elkuld()
{var egyedi_m;
egyedi_m=document.getElementById('egyedi').value;
kukiba(egyedi_m);
}
</script>
</head>
<body onload="elso_kiiras();" bgcolor="#000000">
A cella, ahova kell az input.
<td>
Egyedi mérés:
<form method="get" name="egyedi_fn" id="egyedi_fn" onsubmit="elkuld();">
<input name="egyedi" id="egyedi" type="text" size="1" maxlength="5" value="" onFocus="if(this.value=='') if (d.getMinutes()>9) this.value=d.getHours()+':'+d.getMinutes(); else this.value=d.getHours()+':0'+d.getMinutes();" onChange="kiir(this.value);" />
</form>
</span>
</td>
Egyedi mérés:
<form method="get" name="egyedi_fn" id="egyedi_fn" onsubmit="elkuld();">
<input name="egyedi" id="egyedi" type="text" size="1" maxlength="5" value="" onFocus="if(this.value=='') if (d.getMinutes()>9) this.value=d.getHours()+':'+d.getMinutes(); else this.value=d.getHours()+':0'+d.getMinutes();" onChange="kiir(this.value);" />
</form>
</span>
</td>
A cella, aminek az értékét megváltoztatnám-tom...
A php kód szerzi meg amegváltoztatott és elküldött(!!) értéket
<td>
<span id="um_MSG">
<?php
$egyedi= $_REQUEST['egyedi'];
isset($egyedi) ? $meres_ideje = $egyedi : $meres_ideje = $most_ora;
?>
<script language="javascript"> kiir(egyedi_m);</script>
</span>
</td>
<span id="um_MSG">
<?php
$egyedi= $_REQUEST['egyedi'];
isset($egyedi) ? $meres_ideje = $egyedi : $meres_ideje = $most_ora;
?>
<script language="javascript"> kiir(egyedi_m);</script>
</span>
</td>
Hogyan tudom megoldani, hogy submit után ne az elso_kiirás() értéke, hanem a megváltozott érték jelenjen meg az u_MSG SPAN-on?
(A cookie-val épp most prószálkozom, de -nekem- nyögvenyelős.)
Ötletelek: hidden inputnak átadni??? de az is törlódik lapfrissítéskor...
Köszi!
Kulcsszo: AJAX
Aham! :)
Túúúdom! Gúúúúúúúgli!
:)
De nekem most kell erre megoldás!
Az jó gondolat, hogy JS-sel cookie-ba kirakom az input értékét, majd php-vel visszatöltöm és változóba fűzve kiíratom?
$a="<script language=js>document.getElementById('um_MSG').innerText='üzenetem :'".$_COOKIE."></script>";
print $a;
Tom, bonyi!
De most nem tudok jobbat!
Van jobb? (Nem Ajax! :)
Üdv !
minden szónál.. :)
Ezen megjelenik a mérés ideje : aktuális óra+1!
OKs!
Belép az input mezőbe, mert egyedi mérés eljárását szeretné foganatosításilag megteendeni.
OKs!
Kivitte a fókuszt, és a SPAN('um_MSG') értéke át is íródik egyedi mérésre és időre.
OKs!
De, ha rája csap az entörre, akkor form.submit miatt újratöltődik az oldal, és ugyan a $_REQUEST-ből kiolvasandó leend az múlandott érték, ámde a SPAN-on a init érték látszandik.
(!OKs)!
Azt szeretném- valahogy- elérni, hogy a SPAN is íródjék át a csereértékre!
Ennél jobban már nem tudom elmondani!
:)
mit is?
A SPAN-ban való megjelenítés valóban nem nagy szám. Erre jó a kiir()fv. onBlur eseménynél gyönyörűen múkodik, onChange-nél, ha nem ütök entert a változtatás után, hanem csak elveszem a fókuszt, akkor is szépen vált értéket a SPAN területen.
Ámde átadni php-nak úgy, hogy az oldal már ne töltődjön újra, az már nagyobb szám!
:)
Legalábbis nekem.
Onnantól, hogy nyugtázom a változtatást, a form metódusa lép életbe(get-post), újratöltve az oldalt, így el is veszik a megváltoztatott érték. Igaz, bekerül a $_REQUEST-be, de .. ezt már írtam..
:)
Ezzel az input mezővel szeretném megtudakolni a kedves felhasnyalótól, hogy rendes, normális adatsor input lészen-e majd, vagy csak egy ad-hoch mérés? Ha rendes, akkor az oldal elején definiált $most_ora lesz a mérés idejének alapértéke, ha meg belefirkál az ido-input mezőbe, akkor egyedi mérés lesz.
Merthogy rögzítenem kell nem csak a mért adatokat, hanem a mérés időpontját is- ezért kéne átadni php-nak az adatot. (Meg azt is, hogy ténylegesen mikor tette, meg azt, hogy ki, meg azt, hogy felvitt vagy javított-e, meg... Ezek a következő napok porblémái [a'la Besenyő család:].)
Rendben...
közben megtaláltam a megoldást! :)
Nem input mezők, hanem menüpontok. sql-lel generálódnak a medence táblából.
Így, ha űj medence épül, áll rendszerbe, akkor nem kell megírnom, bővítenem újra az oldalt, hanem a felhasnyaló "teszi" meg helyettem. Ez a filozófia végig benne lesz a programban. (A gépészeti modulnál vízórák, hőmérők, elektromos mérők tömkelege fog előjönni és változni is. Oda, pölö, vonalkód technológiát is be kell majd vinnem.)
A megoldásom. Mivel az egyedi mérés adata űrlapon keresztül jön, ezért az bekerül a $_REQUEST változóba.
A JS értékadás pedig így történik:
{ var mikor= d.getHours()+1+':00';
var egyedi_m="<?=$_REQUEST['egyedi']?>";
if (egyedi_m=="")
{document.getElementById('um_MSG').innerText='Mérés ideje: '+ mikor;}
else
{document.getElementById('um_MSG').innerText='Egyedi mérés: '+ egyedi_m;}
}
A <body onload="elso_kiiras()"> meg is teszi, amit akartam!
:)
(Meglehet, nem elegáncsos! :))))
Ez az értékadás (<?=$_REQUEST['...']?>) miként van definiálva php-ben???
Értékadás?
A
metodikai probléma felület kialakítással kapcsolatban
Ha..
Adott egy adattömeg, amit táblázatos formában kell megjeleníteni. Az adatok közt lehetnek ún. szélsőértékek, vagyis határértéken aluli vagy határértéken túli mennyiségek.
Azt szeretném, hogy ezek a szélsőérékek a megjelenés során a többitől eltérő hátterű cellákban jelenjenek meg.
Hogyan lehet azt elérni, hogy miközben kidobja a képernyőre a táblázatot, ezek az értékek egyből szembetűnőek legyenek?
Stíluslapban nem tudok feltételt használni.
A generálás során kell feltételvizsgálatot végezni és előre definiált stíluslap osztályt rendelni a feltételtől függően?
(Nem lassítja ez a feldolgozást?)
pölö:
Ha $ertek > $felso_ertek akkor print "td.class:felso_ertek" ha < akkor td.class:also_ertek különben td.class:normal
(szintaktikára ne figyelj! :)
Melyik erre a megfelelőbb, gyorsabb, kezelhetőbb eljárás? if? switch? egyéb?
egyszerű css
cssben csinálsz két osztályt: td.high { background: red; }, td.low { backgrund: black; } és ahol a határértékeken kívül esik a cellákba írandó érték, ott adsz a td elemnek egy class tulajdonságot high vagy low értékkel.
CSS feltétel megadás
Mindkettő lehetséges! (Alant kiderül: előbbire nagyobb az esély :)
:)))
Azért kérdés a kérdés számomra, mert nem statikus oldalról van szó, hanem dinamikus, óráról órára változó adatsorokkal.
Az valóban eccerű lenne, ha statikus oldalon két-három-négy osztályt definiálnék, oszt előre megadnám a cellák tulajdonságát.
Csakhogy nem tudom, hogy a következő órában a következő mérés eredménye high vagy low lesz-e. Tehát dinamikusan kell előállítani a megjelenítő oldalt.
:)
****************************
Mögen kiderült, hogy hiátusok vagynak az fejemben és tudásomban!
:)
A CSS-nek igenis lehet feltételt szabni- bár, nálam nem működik! :)
De nadon jó vóna! :)
Szóval, a CSS alapjai I-ben rátaláltam egy megoldásra.
Így?
káosz
honnét jönnek
Vagyis, php fogja generálni a táblázatot: a már meglévő és az újonnan fölvett adatsorokkal.
Látványban valami ilyesminek kéne kinéznie a végén:
A "pH" sor 7.80-as értéke már magasnak, az annál nagyobb pedig TÚLmagasnak számít. Illetve, a 7.00 alacsonynak, a 6.50-nél kisebb meg már TÚLalacsonynak.
A 17:00 és a 19:00-ás mérések fognak következendeni 'ezután', hacsak a főnök nem utasít gyakoribb mérésre.
A "style="background-color:#xxxxxx"-et szeretném kiváltani olymódon, hogy ne a php értékelje ki az értékeket és ne elágazások útvesztőiban barangoljon az adat (ha ennyi, akkor fűzze hozzá a td definicióhoz azt hogy..., ha meg annyi, akkor meg azt hogy ..., ha meg mégannyi, akkor így, és ha más, akkor meg amúgy.., vagy ha az sem, akkor meg emígy), hanem a CSS döntse el a hátteret.
Erre lenne jó, ha táblázatra is működne az, ami input esetében példának fel vagyon hozva.
Vagy ez nagyon kacifántos megoldása lenne a poooorblémának?
:)
tulajdonság alapú kiválasztók
Bocsánat, hogy ilyen láma kéréssel fordulok hozzátok!!!
Ha kikommentezem a teljes fv-t, akkor minden rendben...
:(
Köszi a segedelmet, és még egyszer BOCS!
több sebből vérzik
/*/ szam-e?
milyen megjegyzés akart lenni?// megjegyzés
vagy/* megjegyzés */
stílusú?if
után a feltételt zárójelbe kell tenni minden esetben.És következzen végezetül egy vmivel pofásabban formázott kód az előbbi mintájára, szintaktikai hibáinak javításával:
Köszönöm és bocsánat! :)
Belátom, lehet, hogy rosszul tettem!
Báááár! Annyiban kapcsolódik, hogy ez egy megoldás arra, hogy JS-ben lezajlott eseményt (um_MSG tartalma kattintástól függ) php-nak adok át azzal, hogy egy, az xxx_form-on szereplő rejtett mezőnek adok értéket.
2. Igen, JavaScript.
Azt gondoltam, hogy a kifejezések, értékadások egyértelműen megmutatják, hogy nem más. Még tanulnom kell ezt a fórumozós stílust!
3. Az a megjegyzés lehet a hiba! Amikor kommentezgettem, külön a fv-t, külön a részeit, akkor bennt maradhatott és, mivel úgy gondoltam, hogy az úgyis kommentnek számít, alapból föl se figyeltem rá..
4. Akkor ez volt a másik hiba, amit lentebb már nem követtem el...
Figyelmetlenség!!! :(
5. Én kétszer is átjavítgattam a bejegyzés írásakor a kódot, de sehogy se akarta olyan formában megjeleníteni, mint a tied!
Minden sor után kitöröltem az esetlegesen bennmaradt szóközöket, entört nyomtam, oszt léptem a következő sorra. Mégis egybefolyt. Miután előzőleg egy "Mentés"-i kísérletem eredményeképp üres fórum-űrlapot adott vissza a böngésző, negyedszerre mr nem volt lelkierőm (12 órai fizikai munka után) még egyszer végig futni minden soron.