Fields as checked or not, always bring the same value

Asked

Viewed 35 times

1

Good morning, good morning. I am with a certain problem, where should be made the choice of 3 check fields, if the 3 fields are unchecked, return the empty field message, otherwise bring the values of certain fields.

What happens is that, being as checked or not, they always bring the same occurrence, in case the value of the first field.

Html

<div class="row">
<div class="col-md-3 m-b-15">
<h5>Primeira checagem</h5>
    <div class="form-check">
      <input type="radio" class="form-check-input" id="checagem1" value="prioridade" name="checagem1">
      <label class="form-check-label" for="materialChecked2">Prioridade</label>
    </div>
    <div class="form-check">
      <input type="radio" class="form-check-input" id="checagem1" value="tentativas" name="checagem1">
      <label class="form-check-label" for="materialChecked2">Tentativas</label>
    </div>
    <div class="form-check">
      <input type="radio" class="form-check-input" id="checagem1" value="agendamento" name="checagem1">
      <label class="form-check-label" for="materialChecked2">Agendamento</label>
    </div>
</div>
<div class="col-md-3 m-b-15">
<h5>Segunda checagem</h5>              
    <div class="form-check">
      <input type="radio" class="form-check-input" id="checagem2" value="prioridade" name="checagem2">
      <label class="form-check-label" for="materialChecked2">Prioridade</label>
    </div>
    <div class="form-check">
      <input type="radio" class="form-check-input" id="checagem2" value="tentativas" name="checagem2">
      <label class="form-check-label" for="materialChecked2">Tentativas</label>
    </div>
    <div class="form-check">
      <input type="radio" class="form-check-input" id="checagem2" value="agendamento" name="checagem2">
      <label class="form-check-label" for="materialChecked2">Agendamento</label>
    </div>
</div>
<div class="col-md-3 m-b-15">
 <h5>Terceira checagem</h5>              
      <div class="form-check">
      <input type="radio" class="form-check-input" id="checagem3" value="prioridade" name="checagem3">
      <label class="form-check-label" for="materialChecked2">Prioridade</label>
    </div>
    <div class="form-check">
      <input type="radio" class="form-check-input" id="checagem3" value="tentativas" name="checagem3">
      <label class="form-check-label" for="materialChecked2">Tentativas</label>
    </div>
    <div class="form-check">
      <input type="radio" class="form-check-input" id="checagem3" value="agendamento" name="checagem3">
      <label class="form-check-label" for="materialChecked2">Agendamento</label>
    </div>
</div>

Javascript:

    var $status = document.getElementById("status").checked;
            var $intstatus = 1;
            if ($status ==true) {$intstatus=0;}
            var $qtdtentativas = document.getElementById("qtdtentativas").value;
            var $intervalo = document.getElementById("intervalo").value;
            var $destino = document.getElementById("destino").value;
            var $skill = document.getElementById("skill").value;
            var $pacing = document.getElementById("pacing").value;
            var $prefixo = document.getElementById("prefixo").value;
          //  var $prioridade = document.getElementById("prioridade").value;
            var $checagem1 = document.getElementById("checagem1").value;
            var $checagem2 = document.getElementById("checagem2").value;
            var $checagem3 = document.getElementById("checagem3").value;
            var $horainicio = document.getElementById("horainicio").value;
            var $horafinal = document.getElementById("horafinal").value;

            //+"&prioridade="+ $prioridade 

            var strurl = "gravadb.php?status="+$intstatus + "&intervalo=" +$intervalo + "&destino=" + $destino + "&qtdtentativas=" + $qtdtentativas + "&skill=" + $skill + "&pacing=" + $pacing + "&prefixo=" + $prefixo + "&horainicio=" + $horainicio + "&horafinal=" + $horafinal +"&prioridade1="+ $checagem1 +"&prioridade2="+ $checagem2 +"&prioridade3="+ $checagem3 + "";
            window.location.href = strurl;

PHP

    $prioridade1 = $_GET['prioridade1'];
    $prioridade2 = $_GET['prioridade2'];
    $prioridade3 = $_GET['prioridade3'];

    if(empty($prioridade1) || empty($prioridade2) || empty($prioridade3)){
        echo 'Preencha o campo de checagem';
    }else{
        echo "prioridade 1 = ".$prioridade1." prioridade 2 = ".$prioridade2." prioridade 3 = ".$prioridade3;
    }

Return:

prioridade 1 = prioridade prioridade 2 = prioridade prioridade 3 = prioridade

Edit 1:

Changing the id to be unique for each element. However, the request I’m making now is via the name via getElementsByName(); Yet it returns no value.

 var $checagem1 = document.getElementsByName("checagem1").value;
 var $checagem2 = document.getElementsByName("checagem2").value;
 var $checagem3 = document.getElementsByName("checagem3").value;
  • There are three ids for each check?

  • yes, the idea is, have 3 checks and each of these can have 3 options. I don’t know if declaring the same ID for the 3 as I did this correct...

  • if I change the ID, it even takes other values, but I need it, get only what this checked

1 answer

0

To solve this problem I presented, I had to use javascript as follows:

var choices = [];
                   var els = document.getElementsByName('checagem1');
                   for (var i=0;i<els.length;i++){
                     if ( els[i].checked ) {
                       choices.push(els[i].value);
                     }
                   }
                   var choices1 = [];
                    var els1 = document.getElementsByName('checagem2');
                   for (var i=0;i<els1.length;i++){
                     if ( els1[i].checked ) {
                       choices1.push(els1[i].value);
                     }
                   }
                   var choices2 = [];
                    var els2 = document.getElementsByName('checagem3');
                   for (var i=0;i<els2.length;i++){
                     if ( els2[i].checked ) {
                       choices2.push(els2[i].value);
                     }
                   }

                   var $checagem1 = choices;
                   var $checagem2 = choices1;
                   var $checagem3 = choices2;

so I can only get the element that is checked, it is not necessary to perform the separation by the ID but, by the name.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.