ugrás a tartalomhoz

Radió gomb deaktiválása

Max Logan · 2007. Jan. 25. (Cs), 12.35
Hogyan lehet deaktiválni a véletlenül bekattintott rádió gombot?

A lényeg az, hogy van egy form, ami gyakorlatilag egy táblázatot valósít meg. Minden sorban (10 sor) van egy 2 gomb-ból álló rádió csoport. Ha a user véletlenül kattintja be a radió gombot, akkor hogyan tudja azt be nem kattintottá tenni? Végülis a sor adatinak ellenőrzésével le tudom kezelni php-ben, hogy ha csak a rádió van bekattintva, de a többi adat nincs kitöltve, akkor nem veszi figyelembe mentésnél azt a sort.

Próbálkoztam ALT, CTRL és SHIFT + kattintással, ekkor vettem észre, hogy a SHIFT + 2x katt-ra a Firefox hide-olja az objektumot. Ezt eddig nem tudtam. Legalább vmire rájöttem, még ha nem is arra amit kerestem :-)
 
1

szerintem ennek így kell működnie

Sulik Szabolcs · 2007. Jan. 25. (Cs), 14.01
Én személy szerint akkor rakok ki radio gombot, ha azt akarom, hogy a user válasszon néhány lehetőség közül.
A te esetedben a legegyszerűbb, ha felveszel egy harmadikat, amelynek az a funkciója, hogy az az adatsor nem számít.
2

Re

Max Logan · 2007. Jan. 25. (Cs), 14.11
A lényeg az, hogy nem lehet megbízni a kedves user-ekben, hogy mindent úgy csinálnak ahogy kellene. Ezért gondoltam, hogy van vmi (gomb)funkció, amivel vissza lehet venni a bejelölést. Gondolom én, hogy JS-ből is megoldható a dolog, mármint az ellenőrzés és ahol csak a rádió van bejelölve, ott mondanám neki, hogy "te nem vagy bijelölve". Sok kedvem nincs most tökölni JS-sel.

Mivel az ellenőrzés PHP szinten fog menni mentés előtt, hogy a kitöltött sorban minden helyes-e ezért ott fogom ellenőrzini, hogy csak a rádió van-e kitöltve (véletlenül, vagy mert a user éppen vicces kedvében volt), ha igen, akkor az a sor nem kerül mentésre.

A vége majd úgyis az lesz, hogy AJAX és akkor ha kell neki még egy sor, majd hozzáadja. Jelenleg az a lényeg, hogy egyáltalán a rendszer működőképes legyen. Aztán majd szépen lassan lehet fejlesztgetni. Már most vezetek egy TO DO listát, hogy a későbbiekben mit lehet majd még javítani, autómatizálni, ami jelenleg nem létkérdés.

UpDate: Közben szmbe jutott, hogy ha nem csak a rádió gombokat jelölték be véletlenül, hanem a kitöltött sorban is van hiba, akkor az adatok visszatöltésénél (POST után javításhoz) törlöm a kijelölést az üres sorban a rádió gomb jelöltségét.
3

Minek a rádió gomb?

N0r3i · 2007. Jan. 25. (Cs), 14.44
Ha a beviteli mezők kitöltöttségéből egyértelműen tudsz következtetni a user szándékára, akkor minek fárasztod a rádiógombokkal?

Nem ismerem a konkrét alkalmazásodat, de az elmondottak alapján én teljesen elhagynám a gombokat.

N0r3i
4

Re

Max Logan · 2007. Jan. 25. (Cs), 14.52
Minden sorban két gomb van. Egy kérdésre igen, nem választ oldom meg így. Ha egy sort kitölt, akkor be kell jelölnie, hogy igen vagy nem. De ha véletlenül belekattint az egyik rádió-ba és ellenőrzöm azt a sort, hogy az adatok helyesek-e, mivel nincs mindven kitöltve vissza fogja kapni, hogy az x-edik sorban hiba van. Namost mivel nem tudja kivenni a rádió bejelölést ezért kénytelen lenne kitölteni fals adatokkal a sort, hogy el tudja küldeni a formot. Megoldást lásd fentebb az UpDate alatt ...

Ha nem lett volna egyértelmű akkor bocs. Tehát egy excel doksit másoltam le form-ba és minden sorban van két cella, ahol bejelöli, hogy igen vagy nem. Ezt a honlapon célszerűen rádió gombbal oldottam meg.
5

select

gex · 2007. Jan. 25. (Cs), 15.46
select mező három opcióval: nincs kijelölés, igen, nem.
6

Re

Max Logan · 2007. Jan. 25. (Cs), 16.07
Jó ötlet és akkor megspórolok egy ellenőrzést. Ha meg "véletlenül" átállította egy ki nem töltött sorban, akkor meg vessen magára és bűnhődjön, hogy visszakapja a form-ot a hibás sor számával.

Nemtom, hogy miért ragaszkodtam annyira a rádió gombhoz ...
7

Nehéz kezelni

Jano · 2007. Jan. 25. (Cs), 16.23
A selectet sokkal nehezebb kezelni!

Két lehetőség van attól függően, hogy pontosan mi is az értleme ennek az űrlapnak.

Minden sor elejére teszel egy checkbox-ot, hogy az a sor számít-e. Ha user klikkel radion akkor ezt becheckolod, ha user deaktivalja a checkbox-ot akkor radiokat is leveszed.

Masik eset: ha felhasználónak jelölni kell, hogy igen es nem kozul egyiket sem választja akkor 3 radio. Én ezt ugyis el tudom képzelni, hogy a középre vannak rendezve a radiok es balra, jobbra van az igen,nem és a középső jelöletlen az undefined (ez van alapból bejelölve.)
8

Re

Max Logan · 2007. Jan. 25. (Cs), 16.45
A form minden sora megfelel egy excel beli sornak. Az excel-ben van két cella minden sorban igen és nem. A kettő közül valamelyiket ki kell neki tölteni (az ügyfele, akinél járt rendelt-e valamit vagy sem). Azért gondoltam alapból radio-ra, mert csak egyet tud kiválasztani a user.

Sztem a select-et sem lesz nehezebb kezelni, mert a sor adait ellenőrző függvény pontozáson fog alapulni. Tehát van x adat a sorban. Ha nincs hiba, akkor $error = 0 lesz az eredmény (!= a visszatérési értékkel). Ha bármelyik adat (köztük a select) hibás (tehát != Y or N), akkor a user viszakapja majd hibaüzenetben a hibás sor(ok)nak a számát. Mivel nem engedélyezett a multiple a select-en, ezért itt is csak egy adatot tud bejelölni.
9

nemtom

krey · 2007. Jan. 25. (Cs), 17.06
Nekem tetszett Jano megoldása, most azon filózom, h ezt:
A selectet sokkal nehezebb kezelni!

hogy értette. Szerintem a select-et, a felhasználónak nehezebb kezelni, mert klikkelni kell, lenntartani, kiválasztani és felengedni. Ha tényég sok mindenből kell (vagy lehet) választani, akkor nagyon fárasztó rengeteg select-et így beállítani, a radio-okon meg csak végigsöpör az ember :)

üdv. krey
10

Nem értem ...

Max Logan · 2007. Jan. 25. (Cs), 17.25
... hogy miért nehezebb a selectet kezelni.

A rádió gombok egymás mellett, alatt vannak. Látod mindegyiket és vmelyikre ráböksz. A select-nél kattintasz egyet, megkeresed a 3 db választási lehetőség közül (ami végülis 2, mert az egyik az alapállapot, ami undefined érték) azt amelyiket el kell küldeni és kattintasz mégegyet.

Ténykérdés, 1 kattintással több van, de kétlem, hogy egy táblázat kitöltésénél (várhatóan 3-5 sor) olyan nagy "munka" lenne select-ből kiválasztani.

Jano ötlete a checkbox-os nekem is szmbe jutott, de az még "megterhelőbb" lenne a user-eknek, mint a select. Belegondolva a 3 rádió gombos megoldás kattintás és gyorsaság (kb. 2 mp-ről beszélünk) szempontjából tényleg jobb, de már nem akarok változtatni a design-on. Tehát a 2 db rádió gomb helyére pont befér a select. És van egy olyan sejtésem, hogy a user-eket jobban megkeverné a három gomb, mint a lenyíló lista.
11

Van értelme az undefinednek?

Jano · 2007. Jan. 25. (Cs), 18.18
Van egyaltalan ertelme az undefinednek? Mert ha nincs akkor az egesz egy darab checkbox: "meglatogatva". Ha be van kattintva akkor meglatogatta, ha nem akkor nem vagy nem tudjuk.
Kell-e tudnunk kulonbseget tenni akozott, hogy nem latogatta meg es akozott, hogy nem tudjuk, hogy meglatogatta-e??
13

Re

Max Logan · 2007. Jan. 25. (Cs), 20.42
Azért kell az undefined, mert nem mindegy, hogy nem rendelt az ügyfél akinél járt az üzletkötőnk vagy nem jelölte be a checkbox-ot, mert elfelejtette.

Szóval akkor azt mondod, hogy a rádió gomb célszerűbb mint a select. Akkor sztem az lesz amit írtál, hogy 3 rádió egymás mellett a középső az alap és jobbra-balra meg az igen-nem lesz.
14

Ja, akkor miért nem kettő

Jano · 2007. Jan. 25. (Cs), 22.37
Hátha ezzel kezdted volna... Miért akarod akkor összemosni a látogatást és a rendelést? Miért nincs 2 checkbox:
1 voltam nála
2 rendelt (és gondolom ha ez igen akkor kell a rendelés egységeket felvenni)
15

Valamit félreértettél

Max Logan · 2007. Jan. 25. (Cs), 23.25
Nem volt szó látogatásról. Az egyész form lényege, hogy napi jelentést írnak az üzletkötőink, hogy kinél jártak aznap és hogy rendeltek-e vmit a vevők. Tehát pusztán annak a tényét jelzik, hogy az adott vevő részéről volt-e rendelés vagy sem. Ez csak statisztika. A rendelés feladás nem itt történik.

Viszont ehhez a napi jelentés kitöltéséhez van kötve a rendelés feladása. Vagyis amíg visszamelőleg (hétköznapok) vannak kitöltetlen napi jelentéseik addig nem tudnak megrendelőt feladni, stb.
12

Minden felesleges kattintas rossz

Jano · 2007. Jan. 25. (Cs), 18.28
Nincs olyan, hogy egy felesleges kattintas, meg hogy csak ugyis 5-szor van. Minden egyes ilyen kis plusz interakcio idegesiti a felhasznalot.

Gyakorlott user:
tudja mi a kerdes es a lehetosegek

Radio:
1) eldontod mit akarsz,
2) szemeddel megkeresed
3) klikkelsz

Select kitoltese ha tudod mik a lehetosegek:
1) eldontod mit akasrsz,
2) gondolnod kell arra, hogya selectet ki kell nyitni
3) megkeresed szemeddel selectet
4) klikk selectre
5) szemeddel megkeresed valaszt
6) klikkel
16

Egy megoldás

_jan_ · 2007. Jan. 26. (P), 01.04

<input type=”radio” name=”name” value=”value” onclick=”this.__chk = this.__chk ? this.checked = !this.__chk : this.checked”>
És a lelőhely.
Egész szellemes megoldás!