Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> trzy warunki dla checkboxa
InosU31
post
Post #1





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Witam

Postanowiłem tu napisać i poprosić was o pomoc ponieważ siedzę już kilka dni nad jedną rzeczą i nie mogę sobie z tym poradzić :-(

Mam checkboxa :
  1. <form action="?page={$_pag}&ram={$_ram}&chkp={$chkp}&chku={$chku}&lid={$lid}&plid={$plid}&mc={$mc}&cs={$cs}&ile={$ile}&str={$str}" method="POST" enctype="multipart/form-data" id="prod_uslugi">
  2. <div id="ramka_prod_usl">
  3. <div id="lab_produkt_usl"> Produkty</div>
  4. <div id="check_produkt_usl">
  5.  
  6. <div class="onoffswitch">
  7. <input type="checkbox" name="onoffprodukty" value="on" class="onoffswitch-checkbox" id="myonoffprodukty" {$_check_produkty} onChange="this.form.submit('')" >
  8. <label class="onoffswitch-label" for="myonoffprodukty">
  9. <span class="onoffswitch-inner"></span>
  10. <span class="onoffswitch-switch"></span>
  11. </label>
  12. </div>
  13.  
  14. </div>
  15. </div>
  16. <div id="ramka_prod_usl">
  17. <div id="lab_produkt_usl" style="padding-bottom:10px;">Usługi</div>
  18. <div id="check_produkt_usl">
  19.  
  20. <div class="onoffswitch">
  21. <input type="checkbox" name="onoffuslugi" value="on" class="onoffswitch-checkbox" id="myonoffuslugi" {$_check_uslugi} onChange="this.form.submit('')">
  22. <label class="onoffswitch-label" for="myonoffuslugi">
  23. <span class="onoffswitch-inner"></span>
  24. <span class="onoffswitch-switch"></span>
  25. </label>
  26. </div>
  27.  
  28. </div>
  29. </div>
  30.  
  31. </form>


i chciałbym aby ten formularz spełniał 3 kryteria:
1. Oba są zaznaczone (checked) - możemy także oba włączać
2. Jeśli pierwszy checkbox jest wyłączony i próbujemy wyłączyć drugi to automatycznie włącza się ten pierwszy
3. Jeśli drugi jest wyłączony i próbujemy wyłączyć pierwszy to drugi się włącza


podsumowując nie ma możliwości by oba były wyłączone.

Po części udało mi się to zrobić z tym że nie do końca bo gdy wyłączę pierwszy checkbox i próbuje wyłączyć drugi to ten pierwszy się włącza ale jak chce zrobić odwrotnie to przycisk nr 1 się blokuje i nie można go wyłączyć - dopiero jak jest włączony drugi to można go wyłączyć. Mam nadzieję że nie namieszałem za bardzo ;-)

a oto mój kod php:

  1. if (isset($_POST['onoffprodukty']) && $_POST['onoffprodukty'] == "on")
  2. {
  3. echo "post jest on: ".$_POST['onoffprodukty']."<br>";
  4. $news_login->tassign['_check_produkty'] = "checked";
  5. }
  6. else
  7. {
  8. echo "post jest off: ".$_POST['onoffprodukty']."<br>";
  9. $news_login->tassign['_check_produkty'] = "";
  10. //$_POST['onoffuslugi'] = "on";
  11. $news_login->tassign['_check_uslugi'] = "checked";
  12. }
  13.  
  14. if (isset($_POST['onoffuslugi']) && $_POST['onoffuslugi'] == "on")
  15. {
  16. echo "post1 jest on: ".$_POST['onoffuslugi']."<br>";
  17. $news_login->tassign['_check_uslugi'] = "checked";
  18. }
  19. else
  20. {
  21. echo "post1 jest off: ".$_POST['onoffuslugi']."<br>";
  22. $news_login->tassign['_check_uslugi'] = "";
  23. //$_POST['onoffprodukty'] = "on";
  24. $news_login->tassign['_check_produkty'] = "checked";
  25. }
  26.  
  27. if (empty($_POST['onoffprodukty']) && empty($_POST['onoffuslugi']))
  28. {
  29. $_POST['onoffprodukty'] = "on";
  30. $_POST['onoffuslugi'] = "on";
  31.  
  32. }


byłbym wdzięczny za wszelkie wskazówki :-)

Pozdrawiam serdecznie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
NickOver
post
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


Po pierwsze czemu chcesz to zrobić po stronie serwera? Nie łatwiej (i czytelniej dla użytkownika) było by to zrobić po stronie klienta (javascript)? Skąd użytkownik ma wiedzieć że musi być jakiś zaznaczony? A jeśli odznaczył 2 to który ma być włączony? Skąd php ma wiedzieć co robił użytkownik na stronie? Chyba że przy każdym kliknięciu będziesz wysyłał request ajaxem, ale to i tak bez sensu. Powiedź jaki cel chcesz osiągnąć takim działaniem.
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: 8.10.2025 - 01:38