Submit form with empty checkboxes and receive their value on the server

1

I'm getting a form with AJAX and Jquery and sending for treatment in a PHP file with name getPDF , in this form there are several checkboxes with different values, but name and class are equal ( name = ' check[] ' and class = ' toggle-check ' ). I know how to get the values in the checked checkbox fields with foreach , but is there any way I can get all of the values from all the checkboxes of the form regardless of whether they are checked or not?

PHP code (where only checked checkboxes are handled):

   <?php
    include_once "../Data/config.php";
    foreach($_POST['check'] as $check) {
       $result="SELECT * FROM indicador WHERE nome = '".$check."'";
       $resultado = mysqli_query($dbc,$result);
         while($row_indicador = mysqli_fetch_assoc($resultado)) {
          echo'teste com sucesso ';
         }
     }

Javascript code that sends the values to PHP

  jQuery(document).ready(function(){
 //envio o formulário para tratamento no getPDF.php
        jQuery('#formVerIndicadores').submit(function(){
            var dados = jQuery( this ).serialize();

            jQuery.ajax({
                type: "POST",
                url: "getPDF.php",
                data: dados,
                success: function(data)
                {


                    $('#resultadoPesquisaIndicador').html(data);
                }
            });

            return false;
        });
    });

Html code generated by PHP:

      <form id='formVerIndicadores' method='post'>
      <tr>
       <td>Carne bovina de corte</td>
        <td>
         <div><input class="toggle-check 1" name="check[]" id="" value="Carne   bovina  de corte" type="checkbox"><span></span></div>
        </td>
      </tr>
       <tr>
       <td>Bovino (kg*Pa)</td>
        <td>
        <div><input class="toggle-check 2" name="check[]" id="" value="outro valor qualquer" type="checkbox"><span></span></div>
        </td>
       </tr>
  //Pode ter N checkboxes dependendo da seleção em outro arquivo php
 <input type='button' value='Enviar'/>
      </form>
    
asked by anonymous 09.11.2017 / 14:08

1 answer

2

On page Código Html que foi gerado pelo PHP:

  

Comments in the code

while ($rows = ........
    .........
    .........
    //concatenando todos os valores do checkboxes
    $all_checkbooxes .=$rows['nomeColuna'].","; 
}
//fim while
//input type hidden com todos os valores dos checkboxes
// no value uma função para retirar a ultima virgula
echo "<input type='hidden' name='todos' value='".substr($all_checkbooxes, 0, -1)."'>";

PHP code (where all checkboxes are handled):

include_once "../Data/config.php";
foreach($_POST['check'] as $check) {
   $result="SELECT * FROM indicador WHERE nome = '".$check."'";
   $resultado = mysqli_query($dbc,$result);
     while($row_indicador = mysqli_fetch_assoc($resultado)) {
      echo'teste com sucesso ';
     }
}

$checados = $_POST['check'];

$todos = $_POST['todos'];

$explode = explode(",",$todos);
//retorna os valores que não estão presentes no array dos checados
$naoChecados=array_diff($explode,$checados);

foreach($naoChecados as $noCheck) {
    //o código para usar com os checkboxes que não foram checados
}

Javascript code that sends values to PHP: nothing to change

OBS

Use um '<button type='submit''

<button type='submit' value='Enviar'/>Enviar</button>
<div id="resultadoPesquisaIndicador"></div>
</form>

About the type attribute of buttons

  • submit: The button sends the form data to the server.
  • button: The button has no default behavior. It may have client-side scripts associated with element events, which are triggered when the event occurs.
  • <button> - Mozilla Developer Network

        
    11.11.2017 / 01:44