ugrás a tartalomhoz

Javascript FORM elemek közti kommunikáció

Carter · 2009. Szep. 3. (Cs), 10.30
Elöljáróban elmondanám, nem tudom mi a neve ennek a megoldásnak, ezért nem is tudok rákeresni. Ha már azt elmondaná valaki, megtalálnám!

Van egy táblázatom, ennek a celláiban pedig beviteli mezők (form)

Azt szeretném, ha az egyik beviteli mezőbe beírok valamit, akkor a beírt értéktől függően töltse ki egy másik beviteli mezőt!

Az első mezőbe fixen dátum kerülne, naptárscriptből, tehát fix formátumban. Például:
"2009-09-18" Ebből kellene kivenni a hónap napot és attól függően megjeleníteni egy értéket.

Példa:

"03-15" és "04-15" között legyen egyenlő 890
"04-15" és "04-30" között legyen egyenlő 790

Hogy tudom megoldani, hogy a bevitt adatból a hónap-napot válassza le, hogyan dönti el a JS, hogy mi tartozik a két megadott érték közé? Vagy inkább minden napra külön értéket írjak?

És mi ennek a technikának a neve, hogy a weben bővebb forrást is találjak, esetleg?

Előre is köszönöm a válaszokat!
 
1

Szerintem...

tisch.david · 2009. Szep. 3. (Cs), 11.12
Legegyszerűbben úgy tehetnéd ezt meg, hogy a dátum mező onchange eseménykezelőjének beállítod a JS függvényeged, ami ezt az értékadást elvégzi. A hónapok/napok kinyerése és feldolgozása pedig string függvényekkel és numerikus operátorokkal történhet. (Lásd például itt és itt.)

Üdv:

Dávid
2

fontos ez?

gex · 2009. Szep. 3. (Cs), 11.32
fontos a felhasználónak hogy ott legyen egy mező 790/890 értékkel?
3

fontos

Carter · 2009. Szep. 3. (Cs), 12.17
A megrendelő egy tálca terméket rendel, aminek ára attól függ, hogy mikor veszi át. Tehát ha márciusban, akkor 900 ft, ha áprilisban már csak 800 ft, utána meg bármikor 400 ft. Tehát a felhasználónak látnia kell, hogy mennyit fizet egy tálcáért.

Jelenleg az a problémám, hogy ugyan megvan, hogy mennyi egy tálca ára, de ezt az értéket hogyan adom tovább egy másik függvénynek?

példa egyszerűsítve:
Dátum: <input onkeyup="document.getElementById('ar').innerHTML=(this.value*45);" />
Ára: <div id="ar"></div> .- Ft / tálca<br />
Szóval itt szépen kiíja a div-be az adatot, de ezt hogyan adom tovább pl. egy másik javascript függvénynek bemenetnek, vagy hogyan fogom átadni a php-nak, mikor összegezni akarom a megrendeléseket?
4

változó

Drawain · 2009. Szep. 3. (Cs), 13.04
Nem csak az "ar" div innerhtml-jét kell átállítani a kapott értékre, hanem el kell azt menteni egy változóba is. (opcionálisan ennek a divnek is lekérdezheted az innerhtml-jét a másik függvényben, hiszen úgyis az ár van benne). Ha a PHP-nak akarod küldeni, akkor vagy egy text input-ba teszed a div helyett az összeget (átállítod disabled-re, css-el formázod, és nem is látszik, hogy az egy input) vagy egy hidden input értékének is beállítod (pl. ha van egy "ar2" id-vel ellátott inputod mindegy, hogy text vagy hidden, akkor a document.getElementById('ar2').value értékét állítod át).

Azonban PHP-ból semmiképpen se ezekkel az összegekkel számoljál. Szerveroldalon számold újra, hogy minek mennyi az ára annak függvényében mit és mennyit rendelt. Mindig tartsd szem előtt, hogy amit javascriptben írsz abba bárki bele tud nyúlni az oldalon, így pl. ha a POST-olt árakat dolgozod fel, akkor simán át tudja azokat írni.
5

sötétség

Carter · 2009. Szep. 3. (Cs), 19.16
Hát ez az egész nekem akkor sötétség, reggeltől egészen mostanáig folyamatosan próbálkoztam különféle megoldásokkal, részeredmények voltak, de az egész nem áll össze.

Nem tudok pl. meghívni egy általam írt javascript függvényt... Elképzelésem sincs, hogy a hiba benne:
<script type="text/javascript">
function talcaar() {
		   var datum = "2009-03-13";
if (datum.match("03-15") || datum.match("03-16") || datum.match("03-17")) {
document.write("március van");
}
else if (datum.match("04-15") || datum.match("04-16") || datum.match("04-17")) {
document.write("április van");
}
else {
document.write("valami más hónap van");
}
}
</script>
De hogy hogy kell meghívni? Elképzelésem sincsen :)
<button onclick="talcaar();" value="tálcaár kiszámítás" />
Ez a kód pl. eldob valahová, nem futtatja le a függvényt...

Hol az a pontosvessző, amit kihagyok, mert tuti valami ilyen hiba van.