Ir para conteúdo

POWERED BY:

Arquivado

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

ThunderPHP

[Resolvido] Checkbox

Recommended Posts

Bom dia mais uma vez companheiros,

 

Estou batendo cabeça desde ontem no seguinte caso..

 

tenho as checkbox...

 

<input type="checkbox" value="35" name="teste">Teste

 

são 5 ao total...

 

no arquivo grava.php está assim:

 

foreach ($_POST['chave'] as $campo){

$teste = $campo;

}

 

 

na instrução que pega os dados pra gravar no banco...

 

$gravasql = "INSERT INTO banco (usuario,chave) VALUES ('$usuario','$teste')";

 

ELE SOH GRAVA 0....

 

O campo chave é VARCHAR ...

 

O que eu fiz de errado... alguem pode dar uma força ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, se você tem 5 campos do tipo checkbox

eles deveriam estar como no exemplo abaixo:

 

<input type="checkbox" value="35" name="chave[]">Teste1
<input type="checkbox" value="36" name="chave[]">Teste2
<input type="checkbox" value="37" name="chave[]">Teste3
Ai quando alguém selecionar um (ou mais) checkbox e clicar no botão que faz o submit

para o arquivo que grava os registros, acredito que funcione normalmente.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque no seu foreach você está igualando a variável $teste a $campo

Ou seja ele vai executar todos os laços e no ultimo ele vai igualar ao

ultimo valor. Por isso sempre vai ser somente o ultimo valor selecionado.

 

Pelo que eu entendi você quer que cada checkbox seja um insert novo.

Se esta for sua intenção ou você joga a execução do INSERT dentro do

foreach ou você faz com que $teste seja um array e posteriormente faz

outro foreach aonde você realiza os inserts.

 

Ex:

 

$teste = array();
foreach ($_POST['chave'] as $campo) {
    $teste[] = $campo;
}

foreach ($teste AS $value) {
    $gravasql = "INSERT INTO banco (usuario,chave) VALUES ('$usuario','$value')";
}
Entendeu?

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi sim, valeu, mas eu gostaria que ele gravasse todas as checkbox selecionadas em um unico campo do banco chamado CHAVE.

 

Tipo ..

 

check 1 - value = 1

check 2 - value = 2

check 3 - value = 3

 

gravar assim 123...

 

Consegui passar a idéia ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conseguiu sim, mais facil ainda.

No caso seu erro foi não concatenar a variável $teste dentro do foreach.

Procure sempre setar a variável antes para evitar problemas com reuso da mesma

em diferentes partes do programa.

 

Abaixo vão as formas possíveis de se fazer o desejado:

 

$teste = '';
foreach ($_POST['chave'] as $campo) {
    $teste.= $campo;
}

$gravasql = "INSERT INTO banco (usuario,chave) VALUES ('$usuario','$teste')";
ou

 

$teste = array();
foreach ($_POST['chave'] as $campo) {
    $teste[] = $campo;
}

$chave = implode('',$teste);

$gravasql = "INSERT INTO banco (usuario,chave) VALUES ('$usuario','$chave')";

Abraços.

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.