Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tslopes

PDO Inserir mútiplos valores de checkbox em Mysql

Recommended Posts

Estou tentando inserir os dados de uma tabela com múltiplos checkbox no banco de dados usando PDO. A tabela esta dentro de um form.

 

Parte dó código HTML

<form action="insert.php" method="POST">
    ....
    <label>
        <input name="check[]" id="check[]" type="checkbox" 
        value="<?=$row['id']?>" />
        <span class="lbl"></span>
    </label>
    <button type="submit" name="enviar" id="enviar" >
</form>

Parte do código PHP

$checkbox = $_POST['check'];

for ($i=0; $i<sizeof($checkbox);$i++)

    $insert = $pdo->prepare("INSERT INTO tabela (check_value) VALUES (?)");
    $insert->execute(array(".$checkbox[$i]."));

Mas retorna a mensagem: "Notice: Undefined offset"

 

O que tem de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não utilize for para os checkbox, utilize foreach, os indexes podem não ser sequenciais.

 

Acredito que o exemplo do link sane suas dúvidas:

http://forum.imasters.com.br/topic/519263-pegar-checkbox-unchecked-com-value0/?p=2064762

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não utilize for para os checkbox, utilize foreach, os indexes podem não ser sequenciais.

 

Acredito que o exemplo do link sane suas dúvidas:

http://forum.imasters.com.br/topic/519263-pegar-checkbox-unchecked-com-value0/?p=2064762

 

Ótimo exemplo. Dei um echo e estou conseguindo pegar todos os valores dos checkbox. Só que ao inserir no DB tenho o seguinte erro:

 

Notice: Array to string conversion
$checkbox = $_POST['check'];

foreach($checkbox as $iduser){
   $insert = $pdo->prepare("INSERT INTO tabela (id_01, id_user) VALUES (?, ?)");
   $insert->execute(array($id01, $iduser));                                
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre-me o input do valor $id01, não há nos exemplos anteriores.

Outro detalhe, id são únicos, mesmo no HTML, isso:

id="check[]"

Está errado. Você deve especificar um único:

<input name="check[]" id="check-<?= $row['id']; ?>"  />

ou omitir.

<input name="check[]" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Ótimo exemplo. Dei um echo e estou conseguindo pegar todos os valores dos checkbox. Só que ao inserir no DB tenho o seguinte erro:

 

Notice: Array to string conversion
$checkbox = $_POST['check'];

foreach($checkbox as $iduser){
   $insert = $pdo->prepare("INSERT INTO tabela (id_01, id_user) VALUES (?, ?)");
   $insert->execute(array($id01, $iduser));                                
}

 

 

Olá amigo, nos dois exemplos, consegui identificar os problemas corretamente. O erro vinha de outra variável não do checkbox. Muito obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.