Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML]obrazkowy checkbox
Forum PHP.pl > Forum > Przedszkole
brychu
Witam.
Jak w temacie - czy da się zmienić kwadrat w obrazek?

  1. <form name="rezerwacja" method="POST" action="test2.php">
  2. Jest kwadrat a chce obrazek
  3. <input type="checkbox" type="image" src="http://www.taniepranie.zgora.pl/gfx2/zamowienie2.jpg" name="nazwa" value="wartość" onclick="document.getElementById('identyfikator').style.display = this.checked ? 'block' : 'none'; this.form.elements['nazwa2'].disabled = this.form.elements['nazwa3'].disabled = !this.checked">
  4. <div id="identyfikator" style="display: none">
  5. <input type="text" name="nazwa2" value="1"><br>
  6. <input type="text" name="nazwa3" value="2">
  7. </div>


Jeśli nie, to może pomożecie mi wynaleźć inne rozwiązanie.
Zamiast pól, które miałem dotychczas:

na kwadraciki z ikonami każdego z przedmiotów, które zmienią kolor i wysuną listę "dodatków" po kliknięciu myszką.

Jak ustawić ilość na 0 w przypadku gdy klient nie wybrał danego przedmiotu a jak na 1, gdy klinie przycisk-obrazek?

Będzie to wszystko trochę inaczej wyglądać. To są obrazki poglądowe.
trueblue
https://www.google.com/search?q=checkbox+hack

Jeśli nie wybrał przedmiotu, to nie dostaniesz zmiennej $_POST['nazwa'] w odpowiedzi.
vokiel
Możesz też dać input typu hidden, wstawić zwykłe obrazki i podpiąć do nich akcję wstawienia wartości do tego ukrytego inputa.
brychu
Dziękuje. Mam teraz trochę materiałów do przestudiowania.

Co do checkbox hack to wole nie, bo czytam, że nie na każdej przeglądarce działa i może mieć problemy z androidem. Bla bla bla.
Wolałbym prostą metodę, bo nie dość, że jestem skamieliną programowania to jeszcze nie umiem zbyt wiele i działam na podstawowych informacjach.
Niby zrobiłem system rezerwacji online wraz z kalendarzem, ale to wszystko działa na zasadzie zapisz / odczytaj z bazy danych.

To jak by wyglądał kod na dodawanie wartości do hidden? W ogóle teraz tak się zastanawiam czy wszystko nie zacznie się na stronie rozjeżdżać jeśli użyję rozsuwanych obrazków.

To ja czekam na odpowiedź a sam zaczynam działać. Może coś się uda.
trueblue
Jeśli tworzysz stronę na IE6-8 lub Androida 2.0, to faktycznie lepiej nie stosować checkbox hack.
brychu
Albo jeszcze inaczej.

Tabelka 3x3. W każdej komórce obrazek. I teraz jak zrobić tak, żeby klient mógł zaznaczyć odpowiednie obrazki(podświetlają się na czerwono lub w jakikolwiek inny sposób wskazują, że zostały wybrane), tak, żebym mógł dostać w POST na następną stronę informację, które obrazki zostały wybrane?


trueblue
To nie jest inaczej. To jest analogicznie jak wyżej, tyle, że opakowane w tabelkę.
brychu
Tak, ale ja nie wiem jak wstawić zwykłe obrazki i podpiąć do nich akcję wstawienia wartości do tego ukrytego inputa.
Gdybym dostał to w kodzie to już bym poszedł dalej. Proszę? ;]
vokiel
Wrzucasz je np wewnątrz buttona z przypisaną klasą i jakimś atrybutem zaiwierającym to co chcesz przekazać do serwera.
Potem w JS obsługujesz akcję kliknięcia w button, pobierasz z niego wartość tego atrybutu i ustawiasz value ukrytego inputa.

Jeśli chcesz przesyłać więcej niż jedną opcję to sobie zapisuj w JS w jakiejś zmiennej zaznaczone elementy i do inputa wstawiaj np po przecinku.

Oczywiście, żeby to dobrze działało to musisz sobie zapisywać stan każdego buttona (czy jest zaznaczony czy odznaczony) i obsługiwać obie akcje.
brychu
Dobra. Sam tego nie zrobię, bo nie potrafię. Za niska znajomość programowania.

A jak stąd "wyciągnąć" dane na kolejnej stronie czy button jest wciśnięty czy nie? (W php)
  1. <!doctype html>
  2. <html lang="en">
  3. <meta charset="UTF-8">
  4. <title>Dailyweb checkbox</title>
  5. </head>
  6. .dwcheckbox{
  7. display:none
  8. }
  9. .dwcheckbox + label{
  10. width: 40px;
  11. height: 40px;
  12. background: url("dwcheckbox.png") 0px 0px;
  13. display: block;
  14. cursor: pointer;
  15. }
  16. .dwcheckbox:checked + label{
  17. background-position: 0px -41px;
  18. }
  19. .dwcheckbox + label:hover,.dwcheckbox:checked + label:hover{
  20. opacity: 0.8;
  21. }
  22. .dwradio{
  23. display:none
  24. }
  25. .dwradio + label{
  26. width: 40px;
  27. height: 40px;
  28. background: url("dwradio.png") 0px 0px;
  29. display: block;
  30. cursor: pointer;
  31. }
  32. .dwradio:checked + label{
  33. background-position: 0px -41px;
  34. }
  35. .dwradio + label:hover,.dwradio:checked + label:hover{
  36. opacity: 0.8;
  37. }
  38.  
  39. </style>
  40. <input type="checkbox" id="check1" class="dwcheckbox"/>
  41. <label for="check1"> </label>
  42. </body>
  43. </html>
trueblue
A jak z normalnego checkboxa wyciągasz informację, że jest zaznaczony? Tu identycznie.
Pisałem Ci o tym w poście #2.
brychu
Aha. Dobra, dziękuję. : )
Zaraz prześle moje wypociny.
podgląd pliku
No i super. Wszystko działa. Ślicznie dziękuję. smile.gif

test1.html
  1. <!doctype html>
  2. <html lang="pl">
  3. <meta charset="UTF-8">
  4. <title>Test</title>
  5. </head>
  6. .dwcheckbox{
  7. display:none
  8. }
  9. .dwcheckbox + label{
  10. width: 40px;
  11. height: 40px;
  12. background: url("dwcheckbox.png") 0px 0px;
  13. display: block;
  14. cursor: pointer;
  15. }
  16. .dwcheckbox:checked + label{
  17. background-position: 0px -41px;
  18. }
  19. .dwcheckbox + label:hover,.dwcheckbox:checked + label:hover{
  20. opacity: 0.8;
  21. }
  22. </style>
  23. <form name="rezerwacja" method="POST" action="checkbox2.php">
  24. <input type="checkbox" id="check1" class="dwcheckbox" name="sprawdz1"/>
  25. <label for="check1"> </label>
  26.  
  27. <input type="checkbox" id="check2" class="dwcheckbox" name="sprawdz2"/>
  28. <label for="check2"> </label>
  29. <input class="button" value="Dalej" name="submit" type="submit" />
  30. </html>


checkbox2.php
  1. <?php
  2. $sprawdz1=$_POST['sprawdz1'];
  3. $sprawdz2=$_POST['sprawdz2'];
  4. echo $sprawdz1;
  5. echo $sprawdz2;
  6. ?>
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.