Jump to content
Fórum Script Brasil
  • 0

Passando Mais Valores Por Um Checkbox


Mário Miranda
 Share

Question

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.

Edited by Mário Miranda
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...