Ir para conteúdo

POWERED BY:

Arquivado

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

btrevisol

PHP checkbox

Recommended Posts

Vou tentar fazer o código para a soma.

 

Sobre o loop, fiz do jeito que você explicou no post anterior, mas continua retornando os valores repetidos, mesmo com os IDs diferentes. E ele esta repetindo os checkbox umas 10 vezes, mas só o primeiro retorna o valor, sabe porque??

   while( $dados = mysql_fetch_assoc( $exec ) ){
   ?>

    <label>Agenda de Eventos<input type="checkbox" name="" value="" onclick="document.getElementById('valor1').style.display='block';" />
    <span id="valor1" style="display: none;"><?php echo $dados['valor'];?></span></label></br>  
    <label>Área Restrita<input type="checkbox" name="" value="" onclick="document.getElementById('valor2').style.display='block';" />
    <span id="valor2" style="display: none;"><?php echo $dados['valor'];?></span></label></br>
<?php
   }//fecha while
   ?>

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites
$i = 0;
   while( $dados = mysql_fetch_assoc( $exec ) ){
   ?>

           <label>Agenda de Eventos<input type="checkbox" name="" value="" onclick="document.getElementById('valor<?php echo $i; ?>').style.display='block';" />
    <span id="valor<?php echo $i; ?>" style="display: none;"><?php echo $dados['valor'];?></span></label></br>  
       <?php
       $i++;
   }//fecha while
   ?>

estude programação básica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele continua repetindo, ele ta mostrando assim.

 

Agenda de Eventos 150

Área Restrita 150

Agenda de Eventos 480

Área Restrita 480

Agenda de Eventos 810

Área Restrita 810

Agenda de Eventos 90

Área Restrita 90

.

.

.

pode deixar que eu estou estudando.

 

Obrigado, você esta ajudando muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa alterar a chave.. não conheço os campos da tua tabela, por isso não sei oq te indicar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha tabela é bem simples no phpmyadmin.

 

id_opcional nome valor entrada hospedagem valor_a_vista

1 Agenda de Eventos 330 165 5 303

2 Area Restrita 150 75 5 138

3 Banco de Arquivos 480 240 5 441

4 Cadastro 810 405 10 745

5 Contador de Visitas 90 45 2 82

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

então pelo que entendi:

 

$i = 0;
   while( $dados = mysql_fetch_assoc( $exec ) ){
   ?>

           <label><?php echo $dados['nome']; ?><input type="checkbox" name="<?php echo $dados['nome']; ?>" value="" onclick="document.getElementById('valor<?php echo $i; ?>').style.display='block';" />
    <span id="valor<?php echo $i; ?>" style="display: none;"><?php echo $dados['valor'];?></span></label></br>  
       <?php
       $i++;
   }//fecha while
   ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

È isso mesmo funcionou, ele só esta pulando o primeiro id, esta começando pelo segundo.

 

Você sabe algum jeito de fazer o resultado do checkbox aparecer na frente dele ao invés de aparecer na linha de baixo?

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza deu certo, valeu!!

 

Cara como que eu faço para esses valores dos checkbox, aparecerem todos junto em um label.

 

Assim, conforme vou escolhendo os checkbox que eu quero, ele vai mostrando e somando eles automatico, sem aparecer separados um a um.

 

Não sei se a explicação ficou clara.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, não ficou claro.

 

cara, até agora estou resolvendo pra ti o sistema.. tenta fazer cara.. pensa..

 

não dá para eu ficar te falando tudo..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom cara, a intenção do topico é ajudar outras pessoas que estão precisando. Eu estou tentando fazer sozinho mas não estou conseguindo, por isso estou aqui pedindo a sua ajuda.

 

O que eu estou tentando fazer é o seguinte.

 

Tenho varioas checkbox na tela.

Quando eu clico neles abre a valor deles.

Eu quero que ao clicar no checkbox ao invés de mostrar esses valores separadamente na frente do checkbox, ele armazena todos os valores em um campo texto só, para conforme eu ir clicando nos checkbox ele vai adicionando nesse campo todos os valores, vai somando um a um. entendeu??

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites
$i = 0;
   while( $dados = mysql_fetch_assoc( $exec ) ){
   ?>

           <label><?php echo $dados['nome']; ?><input type="checkbox" name="<?php echo $dados['nome']; ?>" value="<?php echo $dados['valor'];?>" onclick="document.getElementById('valor<?php echo $i; ?>').style.display='block'; document.getElementById('total').value = this.checked ? document.getElementById('total').value+this.value : document.getElementById('total').value-this.value;" />
    <span id="valor<?php echo $i; ?>" style="display: none;"><?php echo $dados['valor'];?></span></label></br>  
       <?php
       $i++;
   }//fecha while
   ?>
<input type="text" name="total" id="total" value="0" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara muito obrigado era exatamente isso que eu queria, ja fiz umas modificações para não aparecer mais na frente do checkbox.

 

Mas estou com um problema, não estou conseguindo fazer ele somar os valores, ele esta só mostrando um na frente do outro dentro do campo.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

esses valores são inteiros ? do tipo float? ou estão formatados em moeda brasileira ?

 

 

parseInt(), parseFloat(), ou .replace() para corrigir a virgula.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:

 

            <label><?php echo $dados['nome']; ?><input type="checkbox" name="<?php echo $dados['nome']; ?>" value="<?php echo $dados['valor'];?>" onclick="somar_mostrar( this, <?php echo $i; ?> )" />

e ai em outro canto, de html puro:

 

<script type="text/javascript">
function somar_mostrar( el, i ){
  document.getElementById('valor'+i).style.display='block'; 
  document.getElementById('total').value = el.checked ? parseFloat( document.getElementById('total').value+el.value ) :   parseFloat( document.getElementById('total').value-el.value );
}</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que eu inseri certo o javascript e o código php.

Eu fiz do jeito que você falou, mas ele ficou um pouco louco.rs

 

Demora muito para abrir a pagina, quando clico em um checkbox ele clica em outros sozinho e mesmo assim não esta retornando valor nenhum no campo texto.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é o erro que esta aparecendo no debug.

 

Erro: document.getElementById("valor" + i) is null

Arquivo-fonte: http://127.0.0.1:8888/formulario/

Linha: 49

 

No link que você me mando, se eu entendi certo, a olução seria essa.

 

"Erro de lógica, tento chegar até um ‘pergunta4′, mas só existe até o pergunta3. Precisa corrigir a condição de parada do loop."

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, você entendeu o ponto.

 

debugue:

function somar_mostrar( el, i ){
  alert( 'valor'+i );//verifique se esse alert, base com os IDs criados.
  document.getElementById('valor'+i).style.display='block'; 

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.