[js] dynamiczne przydzielanie 'punktów' |
[js] dynamiczne przydzielanie 'punktów' |
29.01.2004, 14:01:55
Post
#1
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Otrzymałem zadanie by przygotowac prosty formularz pozwalajacy na rozdysponowanie określonej liczby 'punktów' na ileś grup.
I zupełnie nie mam pomysłu jak to zrobić. Dlatego chętnie wysłucham wszelkich propozycji, jak widzielibyście taki mechanizm: mam np. 20 punktów oraz np. 3 dostępne grupy, do któych punkty muszą trafić. Oznacza to, że może być tak, że user 'wrzuci' wszystkie 20 do 1 grupy, może być tak że da 10 do 1 grupy, 5 do 2 grupy itd. Założenie jest takie, że: a) nie może przydzielić wiecej niż x (tu 20) punktów musi przydzielić wyszstkie (domyślnie są w grupie 1) c) jeśli włożył coś do 2 grupy, to muszą one w jakiś sposób opuścić 1. Na jakiej zasadzie proponowalibyście zrobić taki mechanizm? -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
29.01.2004, 14:12:34
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) |
Na pozór proste:
trzy inputy: 20 0 0 zmieniamy wartość w 2 z 0 na 1, automatycznie (onChange) zmienia sie wartosc pierwszego na 19, zmieniamy na 50 alert('Kolo! nie przesadzaj!') Ale idzmy dalej: co, jesli juz mamy sytuację: 7 7 6 dokładamy do 3 to z którego ma teraz odjąć?.... Może po połowie z każdego z pozostałych? a może wszystko z 1 lub 2? Chodzi mi o to, że trzeba tuściśle sprecyzować założenia, a sam skrypt to już później banał. -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
29.01.2004, 14:55:56
Post
#3
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Problem w tym, ze tuuser ma zadecydować, z którego koszyka wyjąć.
Dlatego zastanawiałem się nad tym, czy nie zrobić tego przy pomocy kilku selectó, pozwalajacych na przeżucenie z jednego do drugiego. takie coś mogło by się sprawdzić przy paru 'punktach' jednak przy ich większej ilości, stanie się strasznie drażniące. Czy można jeszcze inaczej? -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
29.01.2004, 14:59:07
Post
#4
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
W przypadku odjęcia przerzuciłbym wolne punkty do puli "do ryzdyspnowania" i ostrzegł, że nie wszystkie zostały przydzielone.
W ten sposób nie interesuje nas w tym momencie ilosc grup. -------------------- |
|
|
29.01.2004, 15:21:15
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) |
Otóż to! A nierozdysponowane można dla grupy 1 (domyślnej).
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
29.01.2004, 16:37:09
Post
#6
|
|
Grupa: Zarejestrowani Postów: 178 Pomógł: 0 Dołączył: 2.11.2003 Skąd: Kraków Ostrzeżenie: (0%) |
Witam,
hehe zainspirowałeś mnie tym tematem i postanowiłem wreszcie napisać sam jakiś skrypt w js (zawsze tylko zmieniałem gotowe). Siedzialem nad tym 55 minut (naprawdę! :D ale w końcu mi się udało. Z dumą ;) prezentuję więc skrypt, który spełnia ww. zadanie ale pewnie i tak będzie dla Ciebie nieprzydatny... w head: Kod <script language="JavaScript"><!--
function czycalkowita() { calkowita=/^d+$/; if ((calkowita.test(document.dwadziescia.liczba1.value)==false)||(calkowita.test(document.dwadziescia.liczba2.value)==false)||(calkowita.test(document.dwadziescia.liczba3.value)==false)) { alert("Wprowadź liczbę całkowitą."); } else { czydobrze(); } } function czydobrze() { var suma=document.dwadziescia.liczba1.value+'+'+document.dwadziescia.liczba2.value+'+'+document.dwadziescia.liczba3.value var rezultat=eval(suma) if(rezultat==20) { alert("Wszystko OK. Suma jest równa 20"); } else if(rezultat<20) { alert("Za mało. Musisz podać większą wartość dla którejś z grup"); } else { alert("Za dużo Musisz podać mniejszą wartość dla którejś z grup"); } } //--></script> w body: [xml:1:6d358775e8]Sprawdzanie, czy suma liczb podanych w trzech polach jest równa 20<p> <form name="dwadziescia"> Grupa 1: <input type="text" name="liczba1" value="20"/><br/> Grupa 2: <input type="text" name="liczba2" value="0"/><br/> Grupa 3: <input type="text" name="liczba3" value="0"/><br/> <input type="submit" name="ok" onclick="czycalkowita()"/> <input type="reset" name="czysc"/> </form> </div>[/xml:1:6d358775e8] Działający skrypt jest Tutaj. Bardzo możliwe, że są tu błędy- wszelkie uwagi mile widziane. Tak czy siak- fajny ten JavaScript, może się go wreszcie nauczę :D A co do innych możliwości rozwiązania problemu to zgadzam się z przedstawionym sposobem- sam zacząłem pisać coś takiego ale niestety tu już moze możliwości nie wystarczyły ;) Pozdrawiam Bartek |
|
|
29.01.2004, 21:15:05
Post
#7
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 13.04.2003 Skąd: Poznan Ostrzeżenie: (0%) |
Witam
a moze cos takiego: http://son.quake2.org/test/input.html *powinno dzialac w IE - tylko ze nie mam jak sprawdzic :/ Pozdrawiam |
|
|
29.01.2004, 23:23:00
Post
#8
|
|
Grupa: Zarejestrowani Postów: 178 Pomógł: 0 Dołączył: 2.11.2003 Skąd: Kraków Ostrzeżenie: (0%) |
#Teodor: Nie wiem jak inni ale ja jestem impressed :) Dokładnie taki skrypt chciałem napisać ale mi nie wyszło. Wyrazu uznania :)
Pozdrawiam Bartek P.S. Działa pod IE, pod Operą. Nie działa pod Navigatorem :( |
|
|
5.02.2004, 13:20:09
Post
#9
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Wielkie dzięki, chłopaki.
Wszystkie wasze pomysły bardzo mi się podobały, oraz zainspirowały do własnych działań (a przyznam szczerze, że wcześniej wogóle nie wiedziałem, jak sie za to zabrać) Ostatecznie udało mi się zrobić coś takiego: http://www.mstudio.nq.pl/php_pl/przyklady/...yczek/index.htm (działa na IE i Mozilli) -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
5.02.2004, 13:25:35
Post
#10
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
DeyV: działa świetnie. W razie czego można się zgłosić po kod źródłowy?
-------------------- |
|
|
5.02.2004, 14:08:40
Post
#11
|
|
Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) |
Na Operze niestety w ogóle nie działa Ale jeżeli ci to nie przeszkadza, to ok - nie krytykuję, tylko informuję.
|
|
|
6.02.2004, 09:23:15
Post
#12
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Cytat W razie czego można się zgłosić po kod źródłowy?
Z js jest tak śmiesznie, że wszystko co jest opublikowane, jest publiczne Ale oczywiście - dam Ci swoje błogosławieństwo. Cytat Na Operze niestety w ogóle nie działa A to ciekawe. Zawsze miałem jakieś problemy z pisaniem skryptów pod operę, (zresztą chyba nie tylko ja) ale nie spodziewałem się że w sumie nie wykorzystujacy żadnych nietypowych funkcji skrypt będzie też robił taki problem. Dzięki za info.
-------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
Wersja Lo-Fi | Aktualny czas: 2.05.2024 - 10:10 |