(nie)działający CheckBox <3

0

Mam taki problem nie wiem co robię źle naprawdę nie mogę sprawdzić mojego checkboxa jak daje value 1 w html to pokazuje caly czas 1 jak nic nie daje to pokazuje "on" za każdym razem. Szukałem i prawie wszyscy pisali, że używa się do tego po prostu isset ale no nie działa w moim przypadku chyba, że co robię źle.

 $rules = $_POST['rules'];
    echo $rules;
    if (empty($username) || empty($email) || empty($password) || empty($passwordReapet)) {
        if(isset($rules)){
            echo "Complete all fields!";
        } else {
            echo "Complete all fields and accept the rules";
        }
<input type="checkbox" name="rules" value="1">
0

Jeśli ustawisz jakieś value, po zaznaczeniu powinieneś dostać jego wartość.
Jeśli nie ustawisz żadnego, po zaznaczeniu powinieneś dostać dostaniesz 'on'.

1
<?php
 $rules = 0;
 if (isset($_POST['rules'])==true) $rules = $_POST['rules'];
 echo $rules;
 

  if (empty($username) || empty($email) || empty($password) || empty($passwordReapet)) {
      if (isset($rules)) {
          echo "Complete all fields!";
      } else {
          echo "Complete all fields and accept the rules";
      }
  }
?>
<form action="" method="post">
<input type="checkbox" name="rules" value="1">
<button>aa</button>
</form>
0

@Freja Draco: no cały czas pomimo ustawienia tego na 0 to cały czas jest 1 za każdym razem zrobiłem identycznie

1

To nie mam koncepcji. Może jakiś JS ci go stale zaznacza a może coś z ustawieniami serwera.

0

@Freja Draco: W sensie patrz bo ja to ajaxem jeszcze robie ale to nie ma wplywu na to

var form = document.getElementById("form-signup");
var inputs = document.getElementById("form-signup").elements;
var error = document.getElementById("form-error-text");
//var success = document.getElementById("success-signup");
//var success_text = document.getElementById("success-text");
var login = inputs[0];
var email = inputs[1];
var pwd = inputs[2];
var pwdRep = inputs[3];
var rules = inputs[4];
var submit = inputs[5];

submit.addEventListener("click", function(e) {
    e.preventDefault();
    $(document).ready(function() {
        $.ajax({
            url: 'includes/signup.inc.php',
            type: 'POST',
            data: {
                uid: login.value,
                mail: email.value,
                pwd: pwd.value,
                pwdrepeat: pwdRep.value,
                rules: rules.value
            },
            success: function(data) {
                console.log(data);
            },
            error: function(data) {
                console.log("zle");
            }
        });
    });
});
0

To co kolega napisał

data: $('#form-signup').serialize(), 

Rozwiązało problemy

$rules = 0;
if (empty($username) || empty($email) || empty($password) || empty($passwordReapet)) {
    if (isset($_POST['rules']) == true) {
        $rules = $_POST['rules'];
        echo "Complete all fields!";
    } else {
        echo "Complete all fields and accept the rules";
    }

Zamykam

1 użytkowników online, w tym zalogowanych: 0, gości: 1