Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczne wybieranie numerów dla lotto
Forum PHP.pl > Forum > Po stronie przeglądarki
pr0woKator
Witajcie!

Podczas tworzenia swojego serwisu przyszedł moment w którym stanąłem i wiedziałem że tak będzie.
Przyszło mi do napisania systemu wybierania liczb, w systemie lotto dla mojego serwisu.
Jako, że moja wiedza na temat JS, Jquery itd. jest znikoma, a w zasadzie wgl. jej nie posiadam, proszę was o rady. Proszę piszcie wszystko co może co kol wiek wnieść do tematu. Za każdą opinię będę ogromnie wdzięczny.

Sprawa wygląda następująco:

Dla przykładu, mam grę: Lotto, dla tej gry użytkownik może wybrać rodzaj systemu (od 6 do 12), oraz liczbę losowań (od 1 do 10), oraz wiadomo - jego szczęśliwe liczby od 6 do 12 (W zależności od systemu jaki wybrał)

Zastanawiałem się w jaki sposób zrobić wybieranie dla takowego systemu, od razu wpadłem na pomysł, żeby zrobić to za pomocą checkboxów. Jako, że znalazłem kilka serwisów które tematycznie są całkiem inne ale mają takowy system, zauważyłem, że wybieranie liczb nie opiera się checxboxy ale o divy np.
Kod
<div class="liczba" name="liczba" "TUTAJ JAKIEŚ ZMIENNE DLA JS">1</div>
<div class="liczba" name="liczba" "TUTAJ JAKIEŚ ZMIENNE DLA JS">2</div>
itd.

Efekt jaki chcę uzyskać:

Wyświetlanie komunikatu o tym, że użytkownik wybrał max liczb dla jednego kuponu (w zależności od systemu),
Dynamiczne wyświetlanie wybranych liczb w tabeli obok + zrobienie jakiegoś hoveru dla divów z liczbami które zostały wybrane.
Dynamiczne obliczenie kosztu postawienia takiego zakładu tj. Użytkownik obstawia 3 zakłady, obok ma się wyświetlić informacje o koszcie postawienia zakładów + ew. koszty które dolicza serwis np. 10 groszy.

W jaki sposób mogę przesłać informacje o zaznaczonych liczbach (Divach) do PHP?

Dynamicznie wkładać te liczby do inputa którego nie widać i oddzielać je przecinkami, później explode tablicy która to przechowuje?

Liczę na wasze opinię ew. przykłady jak mogę to wykonać.
Dla osoby która był by skłonna poświęcić swój czas przy pomocy w wdrożeniu takiego rozwiązania odwdzięczę się w odpowiedni sposób $$$
markonix
Ja bym zostawił checboxy - w końcu tego służą wink.gif
Nie widzę wielu korzyści dla divów, a checboxy zawsze będą bardziej dostępne (np. bez JS).

Tutaj np. jak zablokować liczbę checkboxów.
http://stackoverflow.com/questions/2966382...checkbox-amount

Oczywiście po stronie PHP też ją sprawdzasz.
pr0woKator
Cóż... Troszę poczytałem na różnych stronach i mniej więcej wiem jak zablokowac możliwość zaznaczenia większej liczby checboxów.

Z tym, że teraz tak - Checboxy wysltylizuje z backgroundem, dodamo hover, i wyświetlę liczbę tekstem? Chyba raczej nie? Jeżeli tak to w jaki sposób to mogę zrobić?

Co do sprawdzania ilości checboxów po stronie php - to jest oczywiste smile.gif Walidowanie tylko JS nie daje bezpieczeństwa
markonix
Chodzi Ci o tekst z liczbą?
Od tego mamy elementy LABEL.
Albo go łączysz za pomocą id z odpowiednim inputem, a można też po prostu:
pr0woKator
Problemem dla mnie stały się najprostsze rzeczy.


Generalnie jak to wygląda...

Mam taki JS:

  1. var licznik = 0;
  2. var max = 6;
  3.  
  4. if(document.getElementByName('system').checked){
  5. alert('Zaznaczone radio');
  6. }
  7.  
  8. function policz(x){
  9.  
  10. if(licznik>=max){
  11. alert('Osiagnales maximum');
  12. return x.checked=!1
  13. }
  14. licznik++
  15. }



Ta dolna funkcja to gotowiec znaleziony w necie.

Mój formularz wygląda tak:

  1. <form method="post" action="">
  2. <input type="radio" name="system" id="system6" value="6" checked/>
  3. <input type="radio" name="system" id="system7" value="7"/>
  4. <input type="radio" name="system" id="system8" value="8"/>
  5. <input type="radio" name="system" id="system9" value="9"/>
  6. <input type="radio" name="system" id="system10" value="10"/>
  7. <input type="radio" name="system" id="system11" value="11"/>
  8. <input type="radio" name="system" id="system12" value="12"/>
  9.  
  10.  
  11. <br /><br />
  12.  
  13. 1<input type="checkbox" name="numer" onclick="policz(this)"/>
  14. 2<input type="checkbox" name="numer" onclick="policz(this)"/>
  15. 3<input type="checkbox" name="numer" onclick="policz(this)"/>
  16. 4<input type="checkbox" name="numer" onclick="policz(this)"/>
  17. ....
  18. 49<input type="checkbox" name="numer" onclick="policz(this)"/>
  19. </form>



Gdy próbuję za pomocą document.getElementById('system').value; pobrać value bo odnośnie niego skrypt ma pozwalać na wybieranie danej ilości liczb. To nie zwraca mi to niczego, i moge wybierać wszystkie.

Czy ktoś wie co jest nie tak?
markonix
Po pierwsze skorzystaj z jQuery, będzie prościej i czytelniej.

Pobierz najpierw wybór systemu:
http://stackoverflow.com/questions/596351/...cted-via-jquery
Przypisujesz do zmiennej max.

Potem liczenie ile mamy wybranych i zablokowanie możliwości wyboru kolejnych:
http://stackoverflow.com/questions/2966382...checkbox-amount
Możesz też zablokować alertem i return false / preventDefault().

No i jeszcze pozostaje kwestia PHP/HTML - w takiej formie ten formularz nie wyśle prawidłowo danych.
Radio inputy są w porządku, ale checboxy nie mają w ogóle value, poza tym jeżeli wszystkie nazwiesz "numer" to wyśle jeden (ostatni) zaznaczony.
Musisz przekazać to oczywiście tablicą czyli name powinno wyglądać np. numer[]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.