Jump to content


Photo

Pegar Valores Checkbox


  • Faça o login para participar
9 replies to this topic

#1 nboportune

nboportune

    Novato no fórum

  • Usuários
  • 22 posts
  • Sexo:Não informado

Posted 29/11/2009, 18:04

Ola Pessoal...

Já faz mais ou menos 3 semanas que estou tentando resvolver isso e não consigo já procurei em tudo qualquer canto pela internet...

Oque acontece é o seguinte...

Tenho os valores de umas checkbox's que eu preciso pegar de uma pagina... não sabia como pegar dois valores, no caso o nome e preço, mas agora estou conseguindo mas o ruim é que preciso separar esses valores para inserir no banco de dados.... quando eu pego os valores ele aparece um do lado do outro ai vi o comando explode tentei usar ele, mas não tive resultado nenhum pois ele em vez de separar " Milho, Alho e Catupiry" ele separa assim "MAC" Ai tem o comando que eu coloco a variavel por exemplo "$opcao[1]" ele vai aparecer "ila" ele pega as segundo caracteres de cada nome... e se eu coloco "$opcao[2]" aparece o 3° caracter de cada um e por ai vai... preciso separar eles com um nome inteiro para inserir no banco de dados....

Segue os codigos que estou usando:
<form method="POST" action="recebe.php">
  <p>
        <input type="checkbox" name="nome[Milho]" value="3">
        <input type="checkbox" name="nome[Alho]" value="10">
        <input type="checkbox" name="nome[Catupiry]" value="5">
    <input type="submit" value="Enviar">
  </p>
</form>


e ai no recebe.php está o seguinte código...
<?PHP


$total = $_POST['nome'];

while(List($key, $value)=each($total)){
list( $opcao ) = explode( " ", $key);
        echo $opcao[0];


}
?>


esse é só um teste que estou fazendo pra tentar pegar os valores pra depois jogar no arquivo certo... pra ficar mais limpo de visualizar...
isso já esta deixando eu louco... porque não consigo entrar em um acordo de como fazer isso... por favor me ajudemmm

agradeço desde já
muito obrigado...

att
Neto.

#2 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 29/11/2009, 19:42

Não deu para entender direito o que você quer fazer...

Mas não seria isso aqui?

<?php

$total = $_POST['nome'];

foreach ($total as $key => $val) {
	echo $key.': '.$val.'<br />';
}

?>

$key será Milho / Alho / Catupiry e $val será 3 / 10 / 5.

(ok2)
att,
Muller Dias
ex-administrador Fórum WMO

#3 nboportune

nboportune

    Novato no fórum

  • Usuários
  • 22 posts
  • Sexo:Não informado

Posted 29/11/2009, 20:32

seria simm....

mas como faz para aparece só milho?

pq até entao o valor da variavel e o nome das 3 checkbox juntas... e se eu der o explode ele fica o primeiro caracteres de cada nome... em vez da palavra inteira separada das outras..


obrigado pela atenção...

#4 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 29/11/2009, 20:48

Bom, todos os checkboxs estão em $total que é um array. Se você der um print_r($total), você verá tudo que você recebeu.

Se você quer exibir o valor apenas do Milho, faça isso:

echo $total['Milho']; // exibirá 3

(ok2)
att,
Muller Dias
ex-administrador Fórum WMO

#5 nboportune

nboportune

    Novato no fórum

  • Usuários
  • 22 posts
  • Sexo:Não informado

Posted 29/11/2009, 21:41

Adiantando quero agradecer a sua atenção...

Então a entendii.... fiz oque vc disse e funcionou... mas preciso pegar a volar milho tbmm para enviar para o banco de dados...

Teria alguma forma de fazer tipo com explodi onde ele quebra as informações da variavel?

tipo variavel[0] variavel[1]

onde ele reconhece que o "0" é o primeiro nome do checkbox selecionado...

Obrigado...

#6 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 29/11/2009, 22:10

Como você quer cadastrar no banco de dados? Explique a estrutura da sua tabela para eu entender...
att,
Muller Dias
ex-administrador Fórum WMO

#7 nboportune

nboportune

    Novato no fórum

  • Usuários
  • 22 posts
  • Sexo:Não informado

Posted 29/11/2009, 23:21

Como você quer cadastrar no banco de dados? Explique a estrutura da sua tabela para eu entender...



Então tem o formulario em uma página normal onde vem os checkbox... e ai ela vem junto com outros dados para cadastrar na tabela carrinho que contem varios campos...

entao nessa pagina ele insere dessa forma:
$sql_add = "INSERT INTO carrinho (id_produto, nome_produto, desc_produto, comentario, selecione, preco_inteira, qtd_produto, op1, pc1, op2, pc2, op3, pc3, op4, pc4, sessao, tipo)
VALUES
('".$reg_prod['id_produto']."', '".$reg_prod['nome_produto']."', '".$reg_prod['desc_produto']."', '$comentario', '$selecione', '".$reg_prod['preco_inteira']."', 1, '".$opcao[0]."', '".$preco[0]."', '".$opcao[1]."', '".$preco[1]."', '".$opcao[2]."', '".$preco[2]."', '".$opcao[3]."', '".$preco[3]."', '".session_id()."', '".$reg_prod['tipo']."')";

repare que a variavel preço seria os nomes dos opicionais que ele pega do check e o preço seria o valor... os outros campos estao inserindo normal... oque não consigo é pegas esses valores separados.... e colocar cada um no campo.....

#8 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 30/11/2009, 11:43

Agora entendi o que você quer fazer. ^_^

Faça isso aqui:

$total = $_POST['nome'];

foreach ($total as $key => $val) {
	$opcao[] = $key;
	$preco[] = $val;
}

O que o código acima vai fazer? Ele vai gerar 2 arrays, o array $opcao terá apenas os nomes dos campos e o array $preco terá apenas os valores dos campos. Exemplo: se eu marcar os 3 checkboxs, meus arrays ficarão assim:

// $opcao
Array
(
    [0] => Milho
    [1] => Alho
    [2] => Catupiry
)

// $preco
Array
(
    [0] => 3
    [1] => 10
    [2] => 5
)

E como pegar cada opção e cada preço separadamente? Exatamente como você fez na query, você colocou $opcao[0] e $preco[0], $opcao[1] e $preco[1], e assim por diante.

(ok2)
att,
Muller Dias
ex-administrador Fórum WMO

#9 nboportune

nboportune

    Novato no fórum

  • Usuários
  • 22 posts
  • Sexo:Não informado

Posted 30/11/2009, 12:59

Agora entendi o que você quer fazer. ^_^

Faça isso aqui:

$total = $_POST['nome'];

foreach ($total as $key => $val) {
	$opcao[] = $key;
	$preco[] = $val;
}

O que o código acima vai fazer? Ele vai gerar 2 arrays, o array $opcao terá apenas os nomes dos campos e o array $preco terá apenas os valores dos campos. Exemplo: se eu marcar os 3 checkboxs, meus arrays ficarão assim:

// $opcao
Array
(
    [0] => Milho
    [1] => Alho
    [2] => Catupiry
)

// $preco
Array
(
    [0] => 3
    [1] => 10
    [2] => 5
)

E como pegar cada opção e cada preço separadamente? Exatamente como você fez na query, você colocou $opcao[0] e $preco[0], $opcao[1] e $preco[1], e assim por diante.

(ok2)


Meu por gentileza qual seu nome?

Quero lhe agradecer pela ajuda, deu certo simm... isso mesmo que eu precisava... era separar elas e colcar pelos numeros e qndo naum tivesse o numero ele colocasse em branco....

fazia 3 semanas que procurava isso na internet e não achava.. kkkk to com sorriso de orelha a orelha akii oww.. kkkkkk


Obrigado mais uma vez pela ajuda....
Abs

#10 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 30/11/2009, 15:04

Sobre o foreach, para você entender melhor, recomendo a leitura dessa página aqui: http://www.php.net/m...res.foreach.php

Está em inglês, mas dá para entender pelos exemplos. ;)
att,
Muller Dias
ex-administrador Fórum WMO




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq