Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][CSS][JavaScript]Problem z Jquery i checkboxami.
Kużdo
post
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 input checkbox, więc jeżeli się go nie zaznaczy, to wartość nie jest wysyłana. Nie mógłbym więc zapisywać do bazy wartości w postaci "0,1,1,1,0,0,0," itd. bo tych zer nie byłoby. Dlatego postanowiłem zapisywać to w takiej postaci jaką przedstawiłem. I tu jest pierwsze pytanie - może ktoś zna lepszy sposób zapisu takich opcji?

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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kużdo
post
Post #2





Grupa: Zarejestrowani
Postów: 181
Pomógł: 14
Dołączył: 4.06.2008

Ostrzeżenie: (0%)
-----


Czytanie ze zrozumieniem?
Mam tabelę, 8 kolumn i 8 wierszy. 7 kolumn i 7 wierszy wypełnione jest inputami typu checkbox. Żeby zadziałało jQuery UI button musiałbym każdemu z nich nadać id i w części head dać:
Kod
<script type="text/javascript">
$(function() {
    $( "#id1" ).button();
    $( "#id2" ).button();
    $( "#id3" ).button();
    (...)
    $( "#id47" ).button();
    $( "#id48" ).button();
    $( "#id49" ).button();
});
</script>

Co jest uciążliwe jeśli będzie trzeba później coś zmieniać. Chciałbym aby zamienianie checkboxów na customowe odbywało się bardziej dynamicznie => Jeśli jest 10 inputów, to mają się zamienić; dodam kolejne 4 >> zamieniają się w customowe. Bez modyfikacji części head itp.

Dla osób, które jednak muszą to przeczytać w wersji HTML: http://jsfiddle.net/bGbSJ/2/

//Komentarz do edycji postu wyżej:
OK, zadziała to na standardowe inputy na stronie, ale nie zadziała na inputy w tabeli. Dlaczego? Tego nie wiem. Możliwe, że przeszkadza tu ta sama nazwa dla każdego inputa "zaznaczone[]". Tak czy siak, jeśli już zrobię coś takiego w sposób globalny, to zazwyczaj dochodzi do erroru przeglądarki "Skrypt wykonywał się za długo, czy przerwać go, ble ble"... A tego raczej nie chcemy.

Ten post edytował Kużdo 22.09.2011, 13:16:12
Go to the top of the page
+Quote Post
!*!
post
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(Kużdo @ 22.09.2011, 13:54:37 ) *
Czytanie ze zrozumieniem?


A o poprawnym zadaniu pytania i opisie słyszał?

Cytat
Nie mógłbym więc zapisywać do bazy wartości w postaci "0,1,1,1,0,0,0," itd. bo tych zer nie byłoby.


Niby dlaczego?

Odwołania w jQ są takie same jak w css $(table input).cos(); Link

Ten post edytował !*! 22.09.2011, 13:48:52
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 18:09