Webform - bevitt adatok való idejű összeadása.

gszoke képe

Sziasztok,

az elmúlt napokat a webform és kapcsolódó modulok mélyebb megismerésével töltöttem. Sok hasznos dologgal találkoztam, és igazán sokrétűnek találtam ezt a modult, de...

elakadtam azon a ponton, amikor a kiválasztott mezőket kellene valós időben összeadni.

Pontosítok:

egy 3 napos konferenciára való regisztrációkor pl. minden napra külön lehet étkezést rendelni. ezeket check box-okban lehet kipipálni, kinek mi kell. mindegyikhez tartozik egy összeg, és ahogy "pipálgat" egy végösszeg mezőben folyamatosan hozzáadogatja az összegeket.

erre egy pl.: http://www.convention.hu/conferences/registration.php?id=271
itt található egy regisztrációs díj összesen mező. ilyen kellene nekem is.

azt sejtem, hogy ezt talán csak php-val lehetne megoldani(de hátha nem), de ilyen tudásban nem bővelkedem, de talán alapműveleteket viszonylag gyorsan el tudnám sajátítani, ha egyáltalán ez lenne a megfelelő irány.

Tanácsot kérnék, merre kellene indulni, illetve folytatni?

Köszönöm előre is

Üdv.:
Gábor

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Désiré képe

Valós idejű változtatásokat egy weboldalon nem tudsz PHP-val megoldani. Erre a JavaScript való.

Ha tényleg nagyon kezdő vagy, akkor nem lesz egyszerű a feladat, de röviden leírom lépésenként mire lehet szükséged:

- Az adott webformba kell illesztened egy JavaScript-et.
Ezt így teheted meg: http://drupal.org/node/342183
Dióhéjban: Az oldalon használt smink vagy egy saját modul könyvtárába bemásolod a webform modulból a 'webform-form.tpl.php'. Ebből meghívod a saját kis JavaScript-edet.

- Írsz egy JavaScript-et, ami elvégzi a feladatot. Ezt is a sminked vagy saját modulod könyvtárába teszed. Itt nagy segítség, hogy a Drupal alapból jQuery-t használ, így használhatod ennek a függvényeit. Konkrétan ezekre lesz szükséged:
Erre, hogy meg tudd vizsgálni, mikor változik egy űrlapmező értéke: http://jqapi.com/#p=change
És erre, hogy meg tudd változtatni egy másik űrlapmező értékét: http://jqapi.com/#p=val

Ez csak elsőre tűnik ám nagyon nehéznek, mindenesetre gyakorlat nélkül szép kihívás lesz...

Bátran kérdezz tovább!

0
0

- - -
Juhász Márton

http://juhaszmarton.hu

gszoke képe

Hálás köszönet a kimerítő infóért, nekilátok...

Üdv.:
Gábor

0
0
gszoke képe

gondoltam nem csak úgy beleugrok a közepébe, így vettem egy JavaScrip könyvet és belemerültem, hogy legyen némi fogalmam az alapokról is. majdnem végeztem vele, így gondoltam, most már bátrabban nekiláthatok.

azt írod, hogy itt jQuery-t használhatok, mivel feltételesen írtad ez azt jelenti, hogy nyugodtam a JS kódot is használhatom helyette?

Illetve a Webformba - bár a linket elküldted, és el is olvastam, - beilleszteni a JS-t kicsit zavaros, vagy csak nem tudom jól értelmezni:

amit a drupal 6-hoz ír egyszerűen nem világos, melyik kódot kell webform-form.tpl.php fileba illeszteni, lehet az angolom kopott kicsit már, de akárhányszor olvasom nem értem.
Világosíts fel lécci.

illetve ha pl. egy + buttont szeretnék rakni a formra, akkor ilyen lehetőség a különböző webform általam ismert kiegészítőiben nincs. Melyik php filet kellene szerkesztenem ahhoz, hogy ilyen kiegészítéseket tudjak tenni?

ugyan a themdev. próbáltam nézeget, mi merre, de nem kaptam számomra értelmezhető infót.

Bocs a sok kérdésért, de szeretném ezt a részét is megtanulni és egyenlőre elég homályos.

Köszi,
Gábor

0
0
Désiré képe

1- tpl.php
Először akkor kell egy saját verzió a 'webform-form.tpl.php' -ból, amit átnevezel így: 'webform-form-{nid}.tpl.php' ahol a {nid} helyére a node-id-t írod. (pl.: webform-form-12.tpl.php). Ez azért jó, mert a módosításaid ilyenkor csak a kiválasztott form esetében lesznek érvénesek.

2- js
Létrehozol egy .js fájlt. Igen, használhatsz bármilyen js kódot, nem kell feltétlenül jQuery-nek lennie.
Ezt a js fájlt kell meghívnod az előbb létrehozott .tpl.php fájlból, a következő képpen:

drupal_add_js(/a_js_fajlod_helye/neve.js);

(http://api.drupal.org/api/function/drupal_add_js/6)
Ezzel elvileg az adott form esetében be fog töltődni a js fájlod.
(Persze lehet ezt másféleképpen is csinálni, de korábban ebbe az irányba indultunk.)

3- +button
Nem tudom, mire gondolsz... Ezt kicsit fejtsed ki bővebben.
De szerintem a válasz itt is olyasmi lesz, hogy a webform-form.tpl.php-val kell variálni...

(remélem azt nem kell mondani, hogy a webform-form.tpl.php-t egy saját smink/modul könyvtárába kell tenni, ahogy a js fájlt is, és ott piszkálgatni, nem pedig a core-ban!)

0
0

- - -
Juhász Márton

http://juhaszmarton.hu

gszoke képe

így már sikerült a kapcsolatot összehozni a JS és a node között, köszi.

próbaként ezt a kódot akartam kipróbálni:

function mouseover() {
	alert ("KAtt");
}
var obj;
obj=document.getElementById("header");
obj.onmouseover = mouseover;

de semmi, azt mondja hibának hogy obj is null.

csináltam egy síma html-t és abban is kipróbáltam és ott rendesen megy.

mi lehet a gond?

köszi
Gábor

0
0
Désiré képe

Sajnos a js nem az erősségem...

De ha jól tippelek, akkor lehet, hogy nincs "header" id-jű elemed?

0
0

- - -
Juhász Márton

http://juhaszmarton.hu

gszoke képe

sajna nem ez a gond, direkt egy olyat választottam, ami tutira van.

0
0
gszoke képe

beküldtem egy másik fórumtémát, más megközelítésből, mindenesetre köszi a segítséget, sokat haladtam előre

Üdv.:
Gábor

0
0