![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Przygotowuję dla użytkowników grafik na stronie i mam kilka problemów. Jednym z nich jest sposób zapisu danych. Opcji jest 49 + "Nie wybrano żadnej opcji". Na początku myślałem o zapisie w postaci dwójkowej, coś co opisywał nospor, ale przy takiej liczbie opcji jest to dosyć uciążliwe, dlatego postanowiłem zapisywać wybór w postaci ciągu liczb rozdzielonych przecinkiem. I tak opcja 1 = 1, opcja 2 = 2, opcja 5 = 5 aż do opcji 49-tej, która ma wartość 49. Dlaczego tak? Ponieważ grafik jest tabelą podzieloną na 8 kolumn i 8 wierszy. 7 kolumn definiuje każdy dzień tygodnia, a 7 wierszy kilka przedziałów czasowych do wyboru. Więc użytkownik ma do wyboru 49 opcji do zaznaczenia (czy chce coś robić w tym przedziale czasowym danego dnia, czy nie). Pola są typu Kolejna rzecz wiąże się już z samym CSSem i JSem. Chciałem zmodyfikować wygląd checkboxów, bo te standardowe to jakoś nie tak wyglądają w całej tej tabeli. No więc z pomocą przyszedmi (teoretycznie) jQuery UI i jego widget "button" (http://jqueryui.com/demos/button/#checkbox). Problem w tym, że ja na JS znam się naprawdę minimalnie, a po drugie, można tutaj definiować buttony tylko na podstawie id. Co za tym idzie, musiałbym zrobić 49 inputów z różnymi ID (to nie jest problem) i 49 wpisów typu: Kod $( "#check1" ).button(); $( "#check2" ).button(); $( "#check3" ).button(); itd. Więc byłoby bardzo miło gdyby ktoś pomógł zrobić to w jakiś ładny i dobry sposób, bo przy ew. zmianie, będzie dużo do zmieniania, a takich sytuacji powinno się unikać. Dodam, że użycie buttonset() nic nie da, bo ustala on jeden przycisk z umieszczonych w jednym miejscu inputów. A tutaj niestety mam tabelę 8x8, więc to nie przejdzie. Z góry dziękuję za odpowiedzi. Pozdrawiam. Ten post edytował Kużdo 22.09.2011, 14:17:43 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przeczytaj ze zrozumieniem mój pierwszy post to może zrozumiesz. Tak i to jest odpowiedź na Twoje pierwsze pytanie.
Co do drugiego pytania. W jaki sposób chcesz zapisać wartość 0, skoro w tablicy POST nie będzie zmiennej, która nie została zaznaczona? Zaznaczam, że wszystkie pola mają tę samą nazwę => "zaznaczone[]" Identyfikacja pól po nazwie odpada, więc w jaki sposób chciałbyś sprawdzić które pole jest zaznaczone, a które nie, jeśli każde pole zawierałoby wartość "1" dla zaznaczonego? Jeśli użytkownik nie zaznaczy checkboxa, to ten nie jest dodawany do POSTa. Więc w ostateczności dostajesz wynik: Kod zaznaczone[1] = 1; zaznaczone[2] = 1; zaznaczone[3] = 1; Więc nie masz zielonego pojęcia, którą wartość zaznaczył użytkownik. Chyba, że znasz inny jeszcze sposób. Co do "jQuery UI button", to działa on w dziwny sposób. Dla każdego inputa potrzebuje dodatkowo etykietę, ale przypisaną do ID pola. Nie może być to <label><input></label>, bo nie zadziała. Jeśli chcesz buttonem zrobić coś innego niż inputa np. całą tabelę, to nie potrzebuje on żadnych dodatkowych parametrów. Z tabeli robi button i jako napis na nim znajduje się zawartość tabeli. Przygotowałem kod do testów więc proszę bardzo: Z wyłączonym JS: http://jsfiddle.net/jnGSZ/ Z włączonym JS po klasach i identyfikatorach: http://jsfiddle.net/jnGSZ/1/ Z włączonym JS po typie pola: http://jsfiddle.net/jnGSZ/2/ Z włączonym JS po identyfikatorze tabeli: http://jsfiddle.net/jnGSZ/3/ Widget działa tylko w przypadku inputa o id="id2", więc widać, że etykieta musi być dołączona przez ID do elementu. Pisałem też o tym w pierwszym poście, że buttony można zdefiniować tylko poprzez ID. Prawdopodobnie da się zmienić coś w JS, żeby działało to lepiej, ale ja w JS jestem zero, więc sam sobie rady nie dam. Pozdrawiam. Ten post edytował Kużdo 22.09.2011, 18:14:34 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 03:02 |