Ir para conteúdo

Arquivado

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

djoko

problemas com input radio

Recommended Posts

Pessoal estou começando a me aventurar na programação e e deparei com o seguinte problema:

Já tenho um db com todos os dados dos moradores de um condomínio.

Todo o final do mês tenho que gerar um relatório sabendo que foi quem pagou ou não o condomínio, carrego sem problema a listagem por bloco dos dados dos moradores, e nisto incluí 4 opções com radio para agilizar o processo.

O problema é que não estou conseguindo passar os dados e gravar novamente no banco.

pag.php

.......

<div class="row">
<div class="col-md-12">
<font size=2>
<table class="table table-bordered">
<thead>
<tr>
<th>Nome</th>
<th>Bloco</th>
<th>Apto</th>
<th><center>Ação</center></th>

</tr>
</thead>
<tbody>

<?php
$i=0;

$consulta = "SELECT * FROM usuarios WHERE bloco='$bloco' ORDER BY nome";
$resultado = $conectar->query($consulta);
while($usuarios = $resultado->fetch_array(MYSQLI_ASSOC))
{
$i++;
echo "<tr>";
$id = $usuarios['id'];
echo "<td>"."{$usuarios['nome']}"."</td>";
echo "<td>"."{$usuarios['bloco']}"."</td>";
echo "<td>"."{$usuarios['apt']}"."</td>";

echo "<form name='condominio' action='condominio.php method='post'>";
echo "<td>"."<label>"."<INPUT TYPE='RADIO' NAME='opcao[$i]' VALUE='1'>"."Pagou Total"."    ".
"<INPUT TYPE='RADIO' NAME='opcao[$i]' VALUE='2'>"."Pagou Parcial"."    ".
"<INPUT TYPE='RADIO' NAME='opcao[$i]' VALUE='3'>"."Não Pagou"."</label>"."</td>";

}

?>

</tbody>
</table>
</font>
</div>
</div>
<div class="row">
<div class="col-md-12">
<a href="condominio.php"><button type="button" class="btn btn-sm btn-warning" type="submit" name="send" >Enviar</button></a>
</div>
</div>

........

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

Cara fiz uma "gambiarra" com seu codigo:

<div class="row">
    <div class="col-md-12">
        <font size=2>         
        <table class="table table-bordered">
            <thead>
                <tr>            
                    <th>Nome</th>
                    <th>Bloco</th>
                    <th>Apto</th>
                    <th><center>Ação</center>
            </th>
            </tr>
            </thead>
            <tbody>
                <?php
                $i = 0;
                $consulta = "SELECT nome, bloco, apt FROM usuarios WHERE bloco='$bloco' ORDER BY nome";
                $resultado = $conectar->query($consulta);
                while ($usuarios = $resultado->fetch_array(MYSQLI_ASSOC))
                {
                    $i++;
                    echo "<tr>";
                    $id = $usuarios["id"];
                    //o que faltou foi esta linha com o calor que vem do banco
                    $opcao = $usuarios["opcao"];
                    //marcar caso o escolhido seja um dos que você marcou
                    $opcao1 = ($opcao == 1) ? 'checked' : null;
                    $opcao2 = ($opcao == 2) ? 'checked' : null;
                    $opcao3 = ($opcao == 3) ? 'checked' : null;

                    print 
                   '<td>' . $usuarios["nome"] . '</td>
                    <td>' . $usuarios["bloco"] . '</td>
                    <td>' . $usuarios["apt"] . '</td>
                    <form name=""condominio action="condominio.php method="post">
                    <td>
                        <label>
                            <input type="radio" name="opcao[]" value="1" '.$opcao1.'> Pagou Total     
                        </label>
                            
                        <label>
                            <input type="radio" name="opcao[]" value="2" '.$opcao2.'> Pagou Parcial     
                        </label>
                            
                        <label>
                            <input type="radio" name="opcao[]" value="3" '.$opcao3.'> Não Pagou 
                        </label>
           %2

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

Cara fiz uma "gambiarra" com seu codigo:

<div class="row">
    <div class="col-md-12">
        <font size=2>         
        <table class="table table-bordered">
            <thead>
                <tr>            
                    <th>Nome</th>
                    <th>Bloco</th>
                    <th>Apto</th>
                    <th><center>Ação</center>
            </th>
            </tr>
            </thead>
            <tbody>
                <?php
                $consulta = "SELECT * FROM usuarios WHERE bloco='$bloco' ORDER BY nome";
                $resultado = $conectar->query($consulta);
                while ($usuarios = $resultado->fetch_array(MYSQLI_ASSOC))
                {
                    echo "<tr>";
                    $id = $usuarios["id"];
                    //o que faltou foi esta linha com o calor que vem do banco
                    $opcao = $usuarios["opcao"];
                    //marcar caso o escolhido seja um dos que você marcou
                    $opcao1 = ($opcao == 1) ? 'checked' : null;
                    $opcao2 = ($opcao == 2) ? 'checked' : null;
                    $opcao3 = ($opcao == 3) ? 'checked' : null;

                    print 
                   '<td>' . $usuarios["nome"] . '</td>
                    <td>' . $usuarios["bloco"] . '</td>
                    <td>' . $usuarios["apt"] . '</td>
                    <form name=""condominio action="condominio.php method="post">
                    <td>
                        <label>
                            <input type="radio" name="opcao[]" value="1" '.$opcao1.'> Pagou Total     
                        </label>
                            
                        <label>
                            <input type="radio" name="opcao[]" value="2" '.$opcao2.'> Pagou Parcial     
                        </label>
                            
                        <label>
                            <input type="radio" name="opcao[]" value="3" '.$opcao3.'> Não Pagou 
                        </label>
                   </td>';
                }
                ?>


            </tbody>
        </table>
        </font>
    </div>
</div>
<div class="row">
    <div class="col-md-12">
        <a href="condominio.php"><button type="button" class="btn btn-sm btn-warning" type="submit" name="send" >Enviar</button></a>
    </div>
</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, so que assim não seleciona todos de uma vez só....

O que quer dizer gambiarra, como faria então.

Outra questão se quisesse mostrar os resultados na mesma página como ficaria...

Cara brigado pela resposta, como disse antes estou começando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Vargasvda
      Boa Tarde Pessoal, 
      Sou novo na área e já consegui fazer várias coisas com o PHP, mas travei em um problema. 
      Tenho dois radio button:
      1- Habilitar
      2- Desabilitar
      Escolho e envio para o banco de dados através de um botão, até aí tudo certo, o banco é gravado corretamente. Porém, qdo acesso a página novamente, eles aparecem vazio, preciso que me traga marcado, o que tem no banco de dados, ( se ele foi marcado habilitado ou desabilitado no ultimo acesso).
       
      <form id="radio" name="radio" method="post" action="funcao.php" enctype="multipart/form-data">
          
        <input type="radio" name="foto" value="Habilita" > Habilita<br> 
        <input type="radio" name="foto" value="Desabilita"> Desabilita<br>
          <br>
          <br>
           <button type="submit" class="btn btn-primary">Alterar</button>
            
        </form>
       
       
    • Por Alex_ps
      Oi amigos e amigas,
       
      Estou trabalhando na exibição de uma página, tipo uma loja em PHP, que em princípio tinha apenas uma pesquisa para a busca do resultado.
      Ou seja, a pessoa digitava o que queria em um box e eu trazia as informações sobre o procurado.
      Recentemente o cliente me pediu que a listagem pudesse ser obtida de duas formas:
      - Através de pesquisa, por digitação, e eu tenho que disponibilizar um código, na dív do lado esquerdo;
      - Através de listagem com filtros, e eu tenho que disponibilizar um outro código na div do lado direito.
      Assim, tenho dois rádio buttons, o do lado esquerdo (com o formulário de busca) e o do lado direito (com os filtros de select).
      Se o usuário seleciona o button do lado esquerdo, eu preciso exibir o conteúdo da div esquerda e esconder as opções do lado direito.
      Se o usuário seleciona o button do lado direito, eu preciso exibir o conteúdo do lado direito, e esconder as opções do lado esquerdo.
      Não posso mostrar os 2 códigos/conteúdos ao mesmo tempo.
      Já encontrei códigos que selecionam o div pelo radio butonn.
      http://wbruno.com.br/javascript-puro/ocultarmostrar-elementos-apartir-de-radio-select/
      O problema é que eu preciso além de selecionar, preciso manter a seleção, através de "localStorage.getItem(''  + this.id)".
      Por eu não conhecer muito JS, e eu até consigo trazer o resultado para o button selecionado. Porém o div que estava sendo exibido, não aparece mais, porque eu usei outro código, para exibir a div.
      Alguém pode dar uma força?
      Obrigado!
       
       
    • Por Bruno T.I
      Bom dia pessoal
       
      Gostaria de uma ajuda em  relação a autenticação de radio button.
       
      Tenho o script abaixo e nete tenho dois radio, gostaria de deixar a validação automática, independente da quantidade de button
      cadastrado, ou seja quero utilizar um laço de repetição, mas não consigo fazer. A forma abaixo se eu adicionar um button,
      vou ter que ir no javascript e adicionar mais "opção". Lembrando que estou utilizando o valor do "nome" do radio.
       
       
      <html> <head> <script language="JavaScript"> function validaRadio() { if (document.form1.opcao[0].checked == false && document.form1.opcao[1].checked == false) { alert('Por favor, selecione o Tipo de Opção.'); return false; } return true; } </script> </head> <body> <form name="form1" method="post" onSubmit="return validaRadio();"> <table> <tr><td colspan="2">Endereço para correspondência:</td></tr> <tr> <td>Opção 1: <input name="opcao" type="radio" value="opcao1"></td> <td>Opção 2: <input name="opcao" type="radio" value="opcao2"></td> </tr> </table> <p><input type="submit" value="Enviar"></p> </form> </body> </html>  
    • Por jfogaca
      Boa tarde
      Possuo um formulário com 5 questões e cada uma delas possuem 3 opções(radio buttons), segue parte do código abaixo:
      ----------
      <form name="Form1" method="post" action="inserequestionario.php" enctype="text/plain" id="Form1"> <input type="radio" id="RadioButton1" name="Questao1" value="3" style="position:absolute;left:16px;top:62px;z-index:0;" required> <input type="radio" id="RadioButton2" name="Questao1" value="2" style="position:absolute;left:140px;top:62px;z-index:1;"> <input type="radio" id="RadioButton3" name="Questao1" value="1" style="position:absolute;left:283px;top:62px;z-index:2;"> <label for="" id="Label1" style="position:absolute;left:36px;top:59px;width:48px;height:18px;line-height:18px;z-index:3;">3</label> <label for="" id="Label2" style="position:absolute;left:160px;top:59px;width:48px;height:18px;line-height:18px;z-index:4;">2</label> <label for="" id="Label3" style="position:absolute;left:303px;top:59px;width:48px;height:18px;line-height:18px;z-index:5;">1</label> <input type="radio" id="RadioButton4" name="Questao2" value="3" style="position:absolute;left:16px;top:133px;z-index:6;"required> <label for="" id="Label4" style="position:absolute;left:36px;top:130px;width:48px;height:18px;line-height:18px;z-index:7;">3</label> <input type="radio" id="RadioButton5" name="Questao2" value="2" style="position:absolute;left:140px;top:133px;z-index:8;"> <label for="" id="Label5" style="position:absolute;left:160px;top:130px;width:48px;height:18px;line-height:18px;z-index:9;">2</label> <input type="radio" id="RadioButton6" name="Questao2" value="1" style="position:absolute;left:283px;top:133px;z-index:10;"> <label for="" id="Label6" style="position:absolute;left:303px;top:130px;width:48px;height:18px;line-height:18px;z-index:11;">1</label> ------------------------- Através do "inserequestionario.php" estou tentando enviar as respostas para o banco de dados,abaixo como estou tentando fazer(sem sucesso): -------------------------------- <?php session_start(); if ( isset ( $_POST["Questao1"] ) ){ $_SESSION['Questao1'] = $_POST["Questao1"]; // echo "Pegou o o valor da Session: ".$_SESSION['resposta'].""; }else{ echo "Erro ao registrar a Session!"; } //verifica se existe conexão com bd, caso não tenta criar uma nova $conexao = mysql_connect("localhost","root","") //porta, usuário, senha or die("Erro na conexão com banco de dados"); //caso não consiga conectar mostra a mensagem de erro mostrada na conexão $select_db = mysql_select_db("plataformaverde"); //seleciona o banco de dados -----------------Parte de outra tentativa //Abaixo atribuímos os valores provenientes do formulário pelo método POST // $Questao1 = $_POST["Questao1"]; //$Questao2 = $_POST["Questao2"]; // $Questao3 = $_POST["Questao3"]; // $Questao4 = $_POST["Questao4"]; // $Questao5 = $_POST["Questao5"]; --------------------------------------------- $sql = "INSERT INTO respostasquestionario (Cod.Usuario,QC1) VALUES ('1','".$_SESSION['Questao1']."'); //String com consulta SQL da inserção mysql_query($sql ,$conexao); //Realiza a consulta if(mysql_affected_rows() == 1){ //verifica se foi afetada alguma linha, nesse caso inserida alguma linha <---- Linha indicando o erro echo "<p>Cadastro feito com sucesso</p>"; echo '<a href="cadastro.html">Voltar para formulário de cadastro</a>'; //Apenas um link para retornar para o formulário de cadastro } else { echo "Erro, não possível inserir no banco de dados"; } mysql_close($conexao); //fecha conexão com banco de dados ?> -----------------------------
      Estou fazendo um teste apenas com a primeira questão, porem esta retornando erro quando tento inserir.
      Alguem consegue identificar onde esta meu erro? (Obs: sou novato em php portanto muita coisa do codigo fiz por exemplos encontrados na web)
      Desde já agradeço.
    • Por Hisoka.
      Bom dia,

      Queria uma ajuda pois tenho um formulário que faço todo o seu preenchimento via Ajax. Porém não sei como preencher o radio button usando o Ajax. No caso o radio button corresponde ao perfil do usuário.

      Função Ajax para preencher os campos:
      function carregaDadosUsuarioJSon(id){ $.post(base_url+'/index.php/usuario/usuario_controller/dados_usuario', { id: id }, function (data){ $('#nome').val(data.nome); $('#senha').val(data.senha); $('#email').val(data.email); $('#setor').val(data.setor); if(val(data.perfil) == 'administrador'){ $('#administrador').prop('checked' , true); }else{ $('#administrador').prop('checked' , false); } }, 'json'); } Formulário:
      <form role="form" method="post" action="<?= base_url('index.php/usuario/usuario_controller/salvar_usuario')?>" id="formulario_usuario"> <div class="form-group"> <label for="nome">Nome</label> <input type="text" class="form-control" id="nome" name='nome'> </div> <div class="form-group"> <label for="email">Senha</label> <input type="password" class="form-control" id="senha" name='senha'> </div> <div class="form-group"> <label for="nome">E-mail</label> <input type="text" class="form-control" id="email" name='email'> </div> <div class="form-group"> <label for="email">Perfil:</label> <label class="radio-inline"> <input type="radio" name="perfil" id="usuario" value="usuario" checked="checked"> Usuário </label> <label class="radio-inline"> <input type="radio" name="perfil" id="administrador" value="administrador"> Administrador </label> </div> <div class="form-group"> <label for="setor">Setor</label> <select class="form-control" name="setor" id="setor"> <option value="ti">TI</option> <option value="engenharia">Engenharia</option> <option value="medico">Médico</option> <option value="suporte">Suporte</option> <option value="arquitetura">Arquitetura</option> </select> </div> <input type="hidden" name="id" id="id" value="" /> </form> Eu só validei o retorno com valor de "administrador" pq ele já vem preenchido como perfil "usuário" por default. Mas mesmo assim continua não trazendo o valor. O que eu poderia mudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.