Ir para conteúdo
Fórum Script Brasil
  • 0

Passando Mais Valores Por Um Checkbox


Mário Miranda

Pergunta

Bom dia pessoal.

Estou precisando passar vários valores a partir de um checkbox da seguinte maneira:

Tem a página que mostra vários itens e cada um tem um checkbox.

Eu preciso passar 3 valores quando seleciono o checkbox: PDV: que pode ser de 01 à mais de 10; número do cupom fiscal; código do cliente.

Passar um valor apenas é tranquilo...mas passar mais de um está meio complicado.

Eu estava fazendo assim:

No valor do checkbox eu colocava todos os parametros que eu preciso(pdv, cupom e cliente) e desmontava depois por meio de substring...mas como alguns valores variam na quantidade de casas, não dava muito certo.

Desde já agradeço a ajuda de todos.

Até + e bom feriado.

Editado por Mário Miranda
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Olá Renyo.

Está assim:

echo"<td>
        <input name=\"cupom_select\" type=\"checkbox\" id=\"oi\" value=\"".$result['id_cliente'].$result['cupom'].$result['pdv']."\"></td>;
if(isset($_POST['confirma'])){
// aqui eu havia colocado um monte de substring pra desmontar o valor do checkbox...

só que com as substrings não dava certo....porque, o $result[cupom], o $resut[cliente] e o $result[pdv] nunca são do mesmo tamanho...as vezes tem 4 casas...as vezes 5...

Será que o caminho é a substring mesmo?

Link para o comentário
Compartilhar em outros sites

  • 0

Use um separador padrão, como ponto ou sustenido, e utilize explode() para serapar o valores.

Para ficar menos gambiarra, eu criaria o checkbox e colocaria cada valor desejado em um campo hidden. Se o check for marcado, eu pegaria os valores de cada campo oculto. ;)

Abraços,

Beraldo

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Beraldo, como vai?

Eu pensei em fazer isso....mas não consegui...não deu muito certo.

Teria como você me detalhar os passos disso? vou postar mais codigos:

echo"<td>
        <input name=\"cupom_select\" type=\"checkbox\" id=\"oi\" value=\"".$result['id_cliente'].$result['cupom'].$result['pdv']."\"></td>
        <td align=center>".$result['id_cliente']."</font></td> 
        <td align=center><font size=\"2\"><a onclick=\"return openHelp('".$result['cupom'].$_REQUEST['data']."')\">".$result['nome']."</font>
            <input type=\"hidden\" name=\"pdvs[]\" value=\"".$result['pdv']."\"></td>
            <td align=center><font size=\"2\">".$result['pdv']."</font></td>
            <td align=center><font size=\"2\">".$result['cupom']."</font></td>
            <td align=center><font size=\"2\">".$result['valor']."</font></td>";
            }

Veja que tem um campo hidden para os PDVs que eu preciso...mas quando eu marco...não me traz o que esta correspondendo ao que eu marquei...traz outros PDVs ..mas não o desejado.

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Um exemplo bem simples:

<input type="checkbox" name="marcado" value="s" />
<input type="hidden" name="campo1" value="valor1" />
<input type="hidden" name="campo2" value="valor2" />
$marcado = isset($_POST['marcado']) ? $_POST['marcado'] : '';
if ($marcado == 's')
{
    //o checkbox foi marcado
    $canpo1 = $_POST['campo1']
    $campo2 = $_POST['campo2'];
}
else
{
    //o checkbox não foi marcado
    
}

Nesse caso nem precisa usar explode(), já que cada valor ficará num canpo oculto separado.

Deu para sacar? ;)

Abraços,

Beraldo

Link para o comentário
Compartilhar em outros sites

  • 0

Blza Beraldo! Acho que deu pra sacar sim.

Vou testar aqui. valeu pela ajuda e atenção.

Até+

Beraldo...só mais uma dúvida:

O que você fez funcionou...só que, para o caso de eu marcar mais que um checkbox...não esta rolando pelo seguinte:

Antes o checkbox levava no nome algo do tipo name=\"cupom[]\".

Assim quando eu marcava varios checkbox, eu fazia um while pra pegar seus valores. Assim:

$a=0;
$b=sizeof($_POST['cupom']);
while($a<$d){
echo"".$b[$a]."";

$a++;
 }
}

Só que ao colocar os colchetes no nome do checkbox....aquele If que você passou, para de funcionar....

Fala Beraldo!

Usei o explode, como você havia dito na primeira.

Deu certo!

valeu pela ajuda mais uma vez!

Até + :D

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...