Ir ao conteúdo
  • Cadastre-se

PHP Como preencher espaço no array mesmo quando o checkbox nao é selecionado


Posts recomendados

Tenho um conjunto de campos que pode ser adicionado quantas vezes quiser, entao coloquei os campos todos arrays, o problema ta sendo o checkbox, pois quando ele nao é marcado, nao acrescenta uma posição no array igual aos outros campos, dai quando vou cadastrar acaba indo errado para o banco, pensei talvez em deixar um valor pre-definido, q mudasse quando fosse marcado, mas nao to conseguindo fazer isso.

  $nome = array_filter($_POST['nome']);
  $cpf = array_filter($_POST['cpf']);
  $celular = array_filter($_POST['celular']);

  foreach ($_POST['check'] as $k => $value) {
    if(isset($value)){
      $check[$k]="true";
    }else{
      $check[$k]="false";
    }
  }
    $quantidades = array_map(null, $nome, $cpf,$celular,$check);

    foreach($quantidades as $i => $quantidade) {
      list($nome, $cpf,$celular,$check) = $quantidade;

      $sql1="insert into tb_teste (cd_familia,cpf,celular,nome,checkbox)values ('$cd_familia','$cpf','$celular','$nome','$check')";
    <form class="" action="conexao.php" method="post">

      <div id="origem">
        <input type="text" name="nome[]" placeholder="nome" value="">
        <input type="text" name="cpf[]" placeholder="cpf" value="">
        <input type="text" name="celular[]" placeholder="celular" value="">

        <input type="checkbox" name="check[]" value="" checked>

      </div>

      <div id="destino">

      </div>

    <input type="button" name="adicionar" onclick="adiciona_campo()" value="+" style="position:absolute; left:49.5%; top:74%; width:2.3%; height:4%; font-size:130%; padding:0;">
    <input type="submit" name="exec" value="enviar">
</form>
  <form class="" action="zerar.php" method="post">
    <input type="submit" name="zerar" value="zerar sessao">
  </form>

 

Link para o comentário
Compartilhar em outros sites

@MillenaSantos

 

Olha pelo que eu entendi você que passar uma array vazia caso o usuário não informar nada, correto ?? Se for isso, o que você pode está fazendo é criando uma array vazia no próprio php e se caso o usuário passar algum parâmetro no checkbox você colocar os dados do chack no lugar dessa array, da seguinte forma

 

<?php
$check = array();

if(isset($_POST('check') && !empty($_POST('check'))
{
 $check = $_POST('check'); 
}
?>

Porém, se o erro estiver na questão de percorrer a array com o foreach porque basicamente a array vai está vazia, você pode fazer o seguinte

 

<?php
if(!empty($_POST['check'])
{
 foreach($_POST['check'] as $key => $value)
 {
   //código...
 }
}
?>

Espero ter ajudado, qualquer coisa só responder!!

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...