Ir para conteúdo

POWERED BY:

Arquivado

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

Giovani Velasques

[Resolvido] Marcar apenas um checkbox em um array com valores dif

Recommended Posts

Bom tarde... Me surgiu um problema que não estou conseguindo resolver... seguinte:

Possuo um form que avalia critérios com notas de 1 a 4, cada nota com seu checkbox, exemplo:

 

CRITERIO/BENEFICIO MUITO BOM 4 BOM 3 RUIM 2 PESSIMO 1

 

Pagamento Checkbox Checkbox Checkbox Checkbox

 

Médico Checkbox Checkbox Checkbox Checkbox

 

Transporte Checkbox Checkbox Checkbox Checkbox

 

 

 

Só que precisio marcar apenas 1 checkbox para cada critério (poder marcar somente uma nota). Só que como o formulario é um array ele apenas pega primeira linha.

Código html:

 

<table style="font-size: 13px; border: 1px solid black;">
       <tr style="background-color: white;">
       <td style="border: solid 1px black;">Convênios/Beneficios</td>
       <td style="border: solid 1px black;">Muito Satisfeito <b>4</b></td>
       <td style="border: solid 1px black;">Satisfeito <b>3</b></td>
       <td style="border: solid 1px black;">Pouco Satisfeito <b>2</b></td>
       <td style="border: solid 1px black;">Insatisfeito <b>1</b></td>
       </tr>
<?php 

	$sql="SELECT * from criterio_pesquisa_beneficio where ativo=true"; 
	$resultado = pg_query($sql); 
	$num = pg_num_rows($resultado); 

	if ($num>0){ 

	for ($i=1;$i<=$num;$i++){
	$retorno = pg_fetch_array($resultado);
       $linhas = $i;
       if($linhas % 2 == 0)
       {
           $background = "background-color: white;";
       } 
       else
           $background = "background-color: #E9E9E9;";

?>
   <form action="selecao_criterio_beneficio.php?acao=salvar" method="post" enctype="multipart/form-data"">
   <tr>
   <td style="text-align: left;border: 1px solid black; <?php echo $background ?>" width="440px">
<input style="display: none;" name="codigo_criterio_pesquisa_beneficio[]" value="<?php echo $retorno['codigo_criterio_pesquisa_beneficio']?>" /><?php echo $retorno['nome']?>
   </td>
   <td align="center" style=" border: 1px solid black; <?php echo $background ?>" width="30px">							
   <input type="checkbox" name="nota[]" id="check4" onclick="confere()" value="4" />  
   </td>
   <td align="center" style=" border: 1px solid black; <?php echo $background ?>" width="30px">							
   <input type="checkbox" name="nota[]" id="check3" onclick="confere()" value="3" />  
   </td>
   <td align="center" style=" border: 1px solid black; <?php echo $background ?>" width="30px">							
   <input type="checkbox" name="nota[]" id="check2" onclick="confere()" value="2" />  
   </td>
   <td align="center" style=" border: 1px solid black; <?php echo $background ?>" width="30px">							
   <input type="checkbox" name="nota[]" id="check1" onclick="confere()" value="1" />  
   </td>
   </tr>
  	<?php }
}	 
    </table>
    <br />
    <table align="right">
    <tr>
    <td><input type="submit" style="cursor: pointer;" value="Salvar Avaliação Beneficios" /></td>
    </tr>
    </table> 
    </form>

 

 

Queria um código javascript com esta idéia, mas assim n funcionou, exemplo:

 

 

if (document.getElementById('check1').checked == true)
 {
  document.getElementById('check2','check3','check4').checked = false;
 }

 if (document.getElementById('check2').checked == true)
 {
  document.getElementById('check1','check3','check4').checked = false;
  }

  if (document.getElementById('check3').checked == true)
 {
  document.getElementById('check1','check2','check4').checked = false;
  }

  if (document.getElementById('check4').checked == true)
 {
  document.getElementById('check1','check2','check3').checked = false;
  }

 

 

Espero que vcs possam me dar esta força... Abraço

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

a função:

 

.getElementById(), só seleciona 1 de cada vez. Não tem como você chamar assim com varias virgulas.

 

E nesse caso, não era melhor entao você usar um type="radio" ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom tarde William, é que com o radio eu consigo seleciona uma nota apenas em todo o formulário. E eu preciso avaliar varios critérios em uma página, cada critério tem uma linha com estas 4 notas e eu preciso que possa seleciona apenas uma nota para cada critério, pois assim sem tratamento posso seleciona 4 notas para cada critério. Eu sei que n posso fazer daquela forma o script, mas foi a idéia que queria passar.

Valeu pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não não amigo.. é possível fazer com radio sim.

 

cada grupo de radios é uma coisa. Só fazer direito.

Isso com checkbox é gambiarra :lol:

 

faça grupos incrementais. você tá num loop, certo ?

 

faz o seguinte:

 

type="radio" name="nota1" value="1" />

type="radio" name="nota1" value="2" />

type="radio" name="nota1" value="3" />

type="radio" name="nota1" value="4" />

 

 

ai na outra volta do loop:

 

 

type="radio" name="nota2" value="1" />

type="radio" name="nota2" value="2" />

type="radio" name="nota2" value="3" />

type="radio" name="nota2" value="4" />

 

 

 

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim, veja:

 

<table style="font-size: 13px; border: 1px solid black;">
       <tr style="background-color: white;">
       <td style="border: solid 1px black;">Convênios/Beneficios</td>
       <td style="border: solid 1px black;">Muito Satisfeito <b>4</b></td>
       <td style="border: solid 1px black;">Satisfeito <b>3</b></td>
       <td style="border: solid 1px black;">Pouco Satisfeito <b>2</b></td>
       <td style="border: solid 1px black;">Insatisfeito <b>1</b></td>
       </tr>
       <?php 

               $sql="SELECT * from criterio_pesquisa_beneficio where ativo=true"; 
               $resultado = pg_query($sql); 
               $num = pg_num_rows($resultado); 

               if ($num>0){ 

               for ($i=1;$i<=$num;$i++){
               $retorno = pg_fetch_array($resultado);
       $linhas = $i;
       if($linhas % 2 == 0)
       {
           $background = "background-color: white;";
       } 
       else
           $background = "background-color: #E9E9E9;";

       ?>
   <form action="selecao_criterio_beneficio.php?acao=salvar" method="post" enctype="multipart/form-data"">
   <tr>
   <td style="text-align: left;border: 1px solid black; <?php echo $background ?>" width="440px">
       <input style="display: none;" name="codigo_criterio_pesquisa_beneficio[]" value="<?php echo $retorno['codigo_criterio_pesquisa_beneficio']?>" /><?php echo $retorno['nome']?>
   </td>
   <td align="center" style=" border: 1px solid black; <?php echo $background ?>" width="30px">                                                        
   <input type="checkbox" name="nota<?php echo $i; ?>" value="4" />  
   </td>
   <td align="center" style=" border: 1px solid black; <?php echo $background ?>" width="30px">                                                        
   <input type="checkbox" name="nota<?php echo $i; ?>" value="3" />  
   </td>
   <td align="center" style=" border: 1px solid black; <?php echo $background ?>" width="30px">                                                        
   <input type="checkbox" name="nota<?php echo $i; ?>" value="2" />  
   </td>
   <td align="center" style=" border: 1px solid black; <?php echo $background ?>" width="30px">                                                        
   <input type="checkbox" name="nota<?php echo $i; ?>" value="1" />  
   </td>
   </tr>
       <?php }
       }        
    </table>
    <br />
    <table align="right">
    <tr>
    <td><input type="submit" style="cursor: pointer;" value="Salvar Avaliação Beneficios" /></td>
    </tr>
    </table> 
    </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, sem palavras pela força... Deu certinho aqui...

Agora n sei como enviar o valor da nota para gravar no banco, até ta enviando, mas n pega a primeira nota, no caso a primeira posição (nota), antes eu fazia assim e dava, codigo:

 

 

foreach($_POST['codigo_criterio_pesquisa_beneficio'] as $key => $value){ 

   $codigo_criterio_pesquisa_beneficio = $_POST['codigo_criterio_pesquisa_beneficio'][$key]; 
   $nota   = $_POST['nota'][$key]; 


$query = "INSERT INTO resultado_pesquisa_beneficio VALUES($nota,$codigo_criterio_pesquisa_beneficio,$codigo_pesquisa_beneficio)";


$grava = pg_query($query); 
}

if ($grava){
       echo "<script language=\"JavaScript\">alert('Salvo com sucesso');</script>";
       //echo "<script language=\"JavaScript\">window.location=\"selecao_criterio_beneficio.php\";</script>";
       }else{
           echo "erro todos";
       }   

 

Como eu trato o recebimento da nota? Valeu mais uma vez... Grande abraço

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.