Jump to content
bobzznnn

Enviar informação do input "radio" para phpmyadmin

Recommended Posts

Como deixo a seleção do radio marcada após o usuario escolher "yes" ou "no" e mandar a informação pra tabela usuario em PhpMyAdmin

 <div class="container" style="width:500px;">  
                <h3 class="text-center">Compound</h3>  
                <div class="radio">  
                     <input type="radio" name="compound" value="yes" />Yes <br />  
                     <input type="radio" name="compound" value="no" />No <br />  
                </div>  
                <div id="result"></div>  
           </div>  
           <br /> 

 

Share this post


Link to post
Share on other sites

Crie um formulário, indique no name o mesmo para os dois radiobutton, altere apenas o value de cada, "sim" e "não".

 

Onde você faz o insert no banco, apenas receba por GET ou POST o campo 'name'. Lembrando que para deixar selecionar apenas uma opção, tende estar com o mesmo nome.

Share this post


Link to post
Share on other sites

Seu problema é enviar ou saber o que o usuário enviou? de qualquer forma da uma olhada nesse código: 

<?php
$opcao_salva_no_DB=$sql_consulta['campo_tabela'];
if($opcao_salva_no_DB=='Yes'){
$c= 'CHECKED';
}else{
$c='';
}
if($opcao_salva_no_DB=='no'){
$n= 'CHECKED';
}else{
$n='';
}

print' <form  name="envia" action="pagina.php" method="post" onsubmit="">';

 print '<div class="container" style="width:500px;">';

               print' <h3 class="text-center">Compound</h3> '; 
               print ' <div class="radio">  ';
                  print'   <input type="radio" name="compound" value="yes" '.$c.' />Yes <br /> '; 
                    print' <input type="radio" name="compound" value="no" '.$n.'  />No <br />  ';
                print'</div>  ';
                print'<div id="result"></div> ';
 				
          print' </div> '; 
		
          print' <br /> ';
		   
		    print' </form>';

?>

 

Share this post


Link to post
Share on other sites
6 horas atrás, MAKAVELIQUE disse:

Seu problema é enviar ou saber o que o usuário enviou? de qualquer forma da uma olhada nesse código: 


<?php
$opcao_salva_no_DB=$sql_consulta['campo_tabela'];
if($opcao_salva_no_DB=='Yes'){
$c= 'CHECKED';
}else{
$c='';
}
if($opcao_salva_no_DB=='no'){
$n= 'CHECKED';
}else{
$n='';
}

print' <form  name="envia" action="pagina.php" method="post" onsubmit="">';

 print '<div class="container" style="width:500px;">';

               print' <h3 class="text-center">Compound</h3> '; 
               print ' <div class="radio">  ';
                  print'   <input type="radio" name="compound" value="yes" '.$c.' />Yes <br /> '; 
                    print' <input type="radio" name="compound" value="no" '.$n.'  />No <br />  ';
                print'</div>  ';
                print'<div id="result"></div> ';
 				
          print' </div> '; 
		
          print' <br /> ';
		   
		    print' </form>';

?>

 

Obrigado mas n funcionou. Minha tabela dentro da "users" se chama "compound" é varchar,255, none.

Deixa eu ver se consigo explicar melhor, oque eu preciso é deixar na pág é a opção " compound(mesmo nome da tablela)" e ao lado, os inputs"sim" e o outro "não", mas de forma que a pessoa escolha e que a opção não suma depois de dar F5, e que a opção escolhida fosse diretamente salva na DB no Phpmyadmin(compound).

Share this post


Link to post
Share on other sites
6 horas atrás, WictorP disse:

Olá bob, tudo bem? Espero que sim!

 

Se não tem nenhum botão de submit que envie o formulário, você deve fazer isso através de jQuery utilizando ajax.

 

Documentações

.ajax: http://api.jquery.com/jquery.ajax/

.click https://api.jquery.com/click/

 

Abraços, Wictor Pamplona.

 

Olá,  Alterei o campo varchar para  tinyint sendo assim fica mais facil do que ficar em texto, onde o zero será não, e o 1 será o sim. Mas como conseguiria enviar essas  informações do html até a db? desculpe mas sou leigo no assunto,

gostaria de tentar adicionar isto da melhor forma

Share this post


Link to post
Share on other sites
2 horas atrás, bobzznnn disse:

 

Olá,  Alterei o campo varchar para  tinyint sendo assim fica mais facil do que ficar em texto, onde o zero será não, e o 1 será o sim. Mas como conseguiria enviar essas  informações do html até a db? desculpe mas sou leigo no assunto,

gostaria de tentar adicionar isto da melhor forma

 

Sim, como já informei no outro post, você deve usar o jQuery para disparar uma função ao alterar o radio, pois sem um input do tipo submit não irá conseguir fazer nada com a informação.

Você vai usar a função .click da qual mandei a documentação parar disparar uma função .ajax que irá gravar o conteúdo na DB através de um PHP.

 

.click https://api.jquery.com/click/

$("input[name='compound']").click(function() {

 // Dispara função ao clicar no input radio

}

 

.ajax http://api.jquery.com/jquery.ajax/

$.ajax({

 // informações descritas na documentação.

});

 

Não irei postar o código pronto porque o maior aprendizado do programador é quando ele quebra a cabeça tentando fazer o código.

Leia a documentação das funções passadas, entenda sua lógica e tente adaptar o código acima. Caso surja alguma dúvida de como funciona, basta me avisar ou até mesmo me mandar uma mensagem privada.

 

Abraços, Wictor Pamplona.

Share this post


Link to post
Share on other sites
4 horas atrás, bobzznnn disse:

 

Olá,  Alterei o campo varchar para  tinyint sendo assim fica mais facil do que ficar em texto, onde o zero será não, e o 1 será o sim. Mas como conseguiria enviar essas  informações do html até a db? desculpe mas sou leigo no assunto,

gostaria de tentar adicionar isto da melhor forma

Você precisa aprender o básico de manipulação de dados com PHP e MySQL, dê uma olhada aqui. Entenda como funciona requisição POST e GET, aí irá entender como enviar os dados de um formulário para o PHP processar e inserir no banco.

Share this post


Link to post
Share on other sites

Obrigado a todos que tentaram me ajudar, acontece que isto é para uma Empresa e no momento estou ocupando um lugar do programador que hoje não está connosco, entendo que preciso estudar muito e muito, sendo que preciso disso pra ontem.

Mesmo assim agradeço a boa vontade de todos. Criei o tópico com a intuição de pedir ajuda, pois o forum está ai pra isso, se fosse o caso de aprimorar ou estudar, eu procuraria o google e não aqui.

Share this post


Link to post
Share on other sites

Exatamente, o fórum no meu ver serve para lhe ajudar a resolver um problema, e não te dar a solução pronta. Caso queira que alguém faça pra ti, pode fazer orçamento, tem área no fórum para isso.

Share this post


Link to post
Share on other sites
1 hora atrás, marcosmarcolin disse:

Exatamente, o fórum no meu ver serve para lhe ajudar a resolver um problema, e não te dar a solução pronta. Caso queira que alguém faça pra ti, pode fazer orçamento, tem área no fórum para isso.

 

Meu amigo, o tópico foi para "quem pode ajudar a resolver meu problema"! Não sei se você entende de programação, mas se tu veio para informar que as "ajudas" aqui são vendidas, está perdendo seu tempo pois qualquer um sabe que tudo se compra e eu não precisaria criar o tópico.

Share this post


Link to post
Share on other sites

Camarada, aqui todo mundo ajuda de graça pois isso é uma comunidade. Mas é necessário sempre dar atenção as respostas, pelo menos ler links que indicam para você. Eu te digo tudo o que tem que fazer para atender sua necessidade, mas é necessário você correr atrás também, vamos lá.

 

O que você precisa é o seguinte:

  • Criar um formulário e enviar os dados para uma ACTION através de um METHOD que pode ser POST ou GET;

  • Criar 2 radiobuttons com o mesmo name, apenas mudar os value para "Sim" e "Não", respectivamente;

  • Criar um arquivo .php que receberá os dados enviados no formulário e tratar;

  • Nesse arquivo que você recebera os dados, você precisa iniciar uma conexão com o banco de dados, montar uma query de INSERT SQL e envia-lá para o banco

  • Depois da inserção, apenas precisa informar se deu erro ou sucesso a inserção.

 

Os passos são esses acima, da maneira mais simples possível. Porém, para fazer isso é preciso saber o básico de programação/PHP. Por isso indicamos links para você ler e tentar iniciar. Depois de iniciar, pode vir aqui que continuaremos te ajudando, ok? Uma comunidade funciona assim.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By rogerblower
      Pessoal estou usando PHPMailer para enviar email com dados do formulário e ao mesmo tempo gravar no mysql.
      O email esta sendo enviado mas não esta gravando no banco, não sei onde estou errando segue meu código.
       
      <?php include 'header.php'; ?> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="row"> <?php date_default_timezone_set('Etc/UTC'); if(isset($_POST['btnsave'])) { $id_cliente = $_POST['id_cliente']; $produto = $_POST['produto']; $medida = $_POST['medida']; $msg = $_POST['msg']; $qtd = $_POST['qtd']; $aprovado = $_POST['aprovado']; $status = $_POST['status']; $data_orca = date('Y-m-d'); $imgFile = $_FILES['user_image']['name']; $tmp_dir = $_FILES['user_image']['tmp_name']; $imgSize = $_FILES['user_image']['size']; if(empty($imgFile)){ $errMSG = "Please Select Image File."; } else { $upload_dir = 'imagens/orcamento/'; // upload directory $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension // valid image extensions $valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions // rename uploading image $userpic = rand(1000,1000000).".".$imgExt; // allow valid image file formats if(in_array($imgExt, $valid_extensions)){ // Check file size '5MB' if($imgSize < 5000000) { move_uploaded_file($tmp_dir,$upload_dir.$userpic); } else{ $errMSG = "Desculpe seu arquivo é muito grande."; } } else{ $errMSG = "Desculpe, somente arquivos JPG, JPEG, PNG e GIF são aceitos."; } } require_once('includes/init.php'); if(!isset($errMSG)){ $addv=$pdo->prepare("INSERT INTO orcamento (id_cliente, produto, medida, qtd, msg, aprovado, status, data_orca, img) VALUE(?,?,?,?,?,?,?,?,?)"); $addv->bindValue("1",$id_cliente); $addv->bindValue("2",$produto); $addv->bindValue("3",$medida); $addv->bindValue("4",$qtd); $addv->bindValue("5",$msg); $addv->bindValue("6",$aprovado); $addv->bindValue("7",$status); $addv->bindValue("8",$data_orca); $addv->bindValue("9",$userpic); if($addv->execute()) { $successMSG = "Orçamento enviado com sucesso..."; } else { $errMSG = "Erro ao enviado Orçamento..."; } } $path_file = $upload_dir.$userpic; /////////////////////////////////////////////////////////////////////////////////////////////// require 'phpmailer/PHPMailerAutoload.php'; //Create a new PHPMailer instance $mail = new PHPMailer; //Tell PHPMailer to use SMTP $mail->isSMTP(); $mail->CharSet = 'UTF-8'; //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 0; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; //Set the hostname of the mail server $mail->Host = "smtp.uhserver.com"; //Set the SMTP port number - likely to be 25, 465 or 587 $mail->Port = 587; //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication $mail->Username = "contato@xxxxx.com.br"; //Password to use for SMTP authentication $mail->Password = "xxxxxx"; //Set who the message is to be sent from $mail->setFrom('contato@xxxxx.com.br', 'xxxxx'); //Set an alternative reply-to address $mail->addReplyTo('no-reply@xxxxx.com.br', 'xxxxx'); //Set who the message is to be sent to $mail->addAddress('contato@xxxxx.com.br', 'xxxxx'); //Mantenha-o simples - não use HTML $mail->isHTML(true); $id = $_SESSION['id_do_produto']; $add_pro = $pdo->prepare("SELECT * FROM produtos WHERE id = '$id' ORDER BY nome_produto ASC"); $add_pro->execute(); while($row=$add_pro->fetch(PDO::FETCH_ASSOC)){ extract($row); $assunto = ''.$row['nome_produto'].''; } //Set the subject line $mail->Subject = 'Solicitação de orcamento de: '.$assunto.''; $mail->Body = ' <html bgcolor="#E6E6E6"> <table able width="60%" align="center" style="background-color:#ffffff; border:1px solid #cccccc;"> <tr style="background-color:#ffffff; border: 1px solid #cccccc;"> <td><a href="http://xxxxx.com.br" target="_blank"><img src="http://xxxxx.com.br/imagens/logo.png" width="300" height="80" /></a></td> </tr> <tr> <td colspan="3"><hr / style="color:#cccccc;"></td> </tr> <tr style="background-color:#ffffff; border: 1px solid #cccccc;"> <td style="color:blue;"><strong> '.$assunto.'</strong></td> </tr> <tr> <td colspan="3"><hr / style="color:#cccccc;"></td> </tr> <tr> <td colspan="2">'.$msg.'</td> </tr> <tr> <td colspan="3"><hr / style="color:#cccccc;"></td> </tr> <tr> <td colspan="3" style="font-size:9px;">Roda pé do formulário</td> </tr> </table> </html> '; //$mail->AddAttachment($path_file); //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body //$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); //Replace the plain text body with one created manually //$mail->AltBody = 'This is a plain-text message body'; //Attach an image file //$mail->addAttachment('examples/images/phpmailer_mini.png'); //send the message, check for errors if (!$mail->send()) { //echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Mensagem Enviada!"; header('Location: index.php'); } } ?> <br/><br/> <table class="table table-bordered table-responsive"> <form method="post" enctype="multipart/form-data" class="form-horizontal"> <tr> <td><label class="control-label">Produto:</label></td> <?php $id = $_SESSION['id_do_produto']; $add_pro = $pdo->prepare("SELECT * FROM produtos WHERE id = '$id' ORDER BY nome_produto ASC"); $add_pro->execute(); while($row=$add_pro->fetch(PDO::FETCH_ASSOC)){ extract($row); echo'<td><input class="form-control" type="text" name="produto" value="'.$row['nome_produto'].'"/></td>'; } ?> </tr> <tr> <td><label class="control-label">Cliente:</label></td> <td><input class="form-control" type="text" name="" value="<?php echo $_SESSION['c_nome'] ?>"/> <input class="form-control" type="hidden" name="id_cliente" value="<?php echo $_SESSION['c_id'] ?>"/></td> </tr> <tr> <td><label class="control-label">Medida: <i style="font-size: 11px">Altura X Largura</i></label></td> <td><input class="form-control" type="text" name="medida" placeholder="0,00 x 0,00" /></td> </tr> <tr> <td><label class="control-label">Quantidde:</label></td> <td><input class="form-control" type="text" name="qtd" /></td> </tr> <tr> <td><label class="control-label">Mensagem.</label></td> <td><textarea class="form-control" type="text" name="msg" rows="3" placeholder="Mensagem"></textarea></td> </tr> <input class="form-control" type="hidden" name="aprovado" value="Não" /> <input class="form-control" type="hidden" name="status" value="Aberto" /> <tr> <td><label class="control-label">Envie seu Layout.</label></td> <td><input class="input-group" type="file" name="user_image" accept="image/*" /></td> </tr> <tr> <td colspan="2" style="text-align:center; padding: 30px;"><button type="submit" name="btnsave" class="btn btn-primary"> <span class="glyphicon glyphicon-save"></span> &nbsp; Enviar Orçamento &nbsp; </button> </td> </tr> </form> </table> </div><!-- /.row --> </div><!-- /.col-md-12 --> </div><!-- /.row --> </div><!-- /.container --> <?php include 'footer.php'; ?>  
    • By Hlameiras
      Olá!
       
      Estou tentando desenvolver um formulário dinâmico em PHP, em que o utilizador ao clicar num determinado botão possa acrescentar campos de INPUTs ou SELECTs no mesmo.
      Encontrei este exemplo que funciona mas tem limitações:
      https://www.formget.com/how-to-dynamically-add-form-fields-and-increment-name-attribute-of-the-field/
       
      O problema é que os campos adicionais são gerados pelo lado do cliente (Javascript) e não pelo lado do servidor, logo no caso de gerar SELECTS que vão buscar informação a uma Base de Dados, as opções de escolha não são apresentadas. Qual será a melhor solução para resolver este problema?
       
      Agradecido!
       
       
       
    • By rtavix
      Pessoal eu sou iniciante na programação, e irei detalhar todo o processo resumidamente que estou fazendo no momento. Eu tenho uma pagina web que realiza uma consulta através de uma determinada data. Tenho um dropdow e dentro dele eu tenho a Opção Mês base e Período, caso eu selecione o Mês base devo carregar um campo de data informando o mes e o ano e em seguida eu tenho dois radio button escrito a opção Sim e Não e caso escolho fazer o filtro por periodo, deverei carregar um capo de data automaticamente para informar um determinado periodo preenchendo a data de inicio dd/MM/yyyy até a data final dd/MM/yyyy, após escolher Mês base ou por Período dentro do dropDow e carregar o campo de data automaticamente onde o usuário informará a data, consequentemente o mesmo irá escolher se a opção é de Liberação Sim ou Não (radio button) acho que é assim que se escreve rs, caso ele realiza sua escolha, deverá carregar os seguintes dados na grid:
      AnoMêsBase, inscEstadual, razaoSocial e NME_ABREV.
      Observação: No meu banco de dados a coluna AnoMesBase está dessa forma por exemplo 032018, sempre irá vir dessa forma, a data nunca será formatado o campo.
      Porém não estou conseguindo trazer as informações que está no banco de dados.
      Até agora implementei as seguintes classes:
       
      using System; using System.Collections.Generic; using System.Linq; using System.Text; using NHibernate.Mapping.Attributes; namespace Dominio.Domain { [Serializable] [Class(Table = "DAP_EMPRESA", NameType = typeof(Empresa), Lazy = false)] public class Empresa { private int codigo; private string inscEstadual; private string razaoSocial; private string nomeAbreviado; private DateTime dataCadastro; private string cnpj; [Id(Column = "ID_EMPRESA", Name = "Codigo", Generator = "increment", UnsavedValue = "0")] public int Codigo { get { return codigo; } set { codigo = value; } } [Property(Column = "INSC_ESTADUAL", Lazy = false)] public string InscEstadual { get { return inscEstadual; } set { inscEstadual = value; } } [Property(Column = "RAZAO_SOCIAL", Lazy = false)] public string RazaoSocial { get { return razaoSocial; } set { razaoSocial = value; } } [Property(Column = "NME_ABREV", Lazy = false)] public string NomeAbreviado { get { return nomeAbreviado; } set { nomeAbreviado = value; } } [Property(Column = "DAT_CADASTRO", Lazy = false)] public DateTime DataCadastro { get { return dataCadastro; } set { dataCadastro = value; } } [Property(Column = "CNPJ", Lazy = false)] public string Cnpj { get { return cnpj; } set { cnpj = value; } } } } using NHibernate.Mapping.Attributes; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Dominio.Domain { [Serializable] [Class(Table = "DAP_FINANCIAMENTO", NameType = typeof(Financiamento), Lazy = false)] public class Financiamento { private int codigo; // private Empresa empresa; // private decimal vlrFinanciamento;// private string inscEstadual;// private string anoMesBase; // private string anoMesFaturamento; // private decimal vlrICMSPrevisto; // private decimal totalRecolhimento; // private DateTime datUltimoRecolhimento; // private decimal totalLiberacao; // private DateTime datLiberacao; // private DateTime datUltimaLiberacao; // private decimal totalDevolucao; // private string descObservacao; // private DateTime dataDevolucao; // private DateTime dataCadastramento; // private int mesBase; // private int mesFat; // [Id(Column = "ID_FINANCIAMENTO", Name = "Codigo", Generator = "increment", UnsavedValue = "0")] public int Codigo { get { return codigo; } set { codigo = value; } } [ManyToOne(0, Name = "Empresa", ClassType = typeof(Empresa), Column = "ID_EMPRESA", Lazy = Laziness.False)] public Empresa Empresa { get { return empresa; } set { empresa = value; } } [Property(Column = "VLR_FINANCIAMENTO", Lazy = false)] public decimal VlrFinanciamento { get { return vlrFinanciamento; } set { vlrFinanciamento = value; } } [Property(Column = "INSC_ESTADUAL", Lazy = false)] public string InscEstadual { get { return inscEstadual; } set { inscEstadual = value; } } [Property(Column = "ANO_MES_BASE", Lazy = false)] public string AnoMesBase { get { return anoMesBase; } set { anoMesBase = value; } } [Property(Column = "ANO_MES_FATURA", Lazy = false)] public string AnoMesFaturamento { get { return anoMesFaturamento; } set { anoMesFaturamento = value; } } [Property(Column = "VLR_ICMS_PREVISTO", Lazy = false)] public decimal VlrICMSPrevisto { get { return vlrICMSPrevisto; } set { vlrICMSPrevisto = value; } } [Property(Column = "TOTAL_RECOLHIDO", Lazy = false)] public decimal TotalRecolhimento { get { return totalRecolhimento; } set { totalRecolhimento = value; } } [Property(Column = "DATA_ULTIMO_RECOL", Lazy = false)] public DateTime DatUltimoRecolhimento { get { return datUltimoRecolhimento; } set { datUltimoRecolhimento = value; } } [Property(Column = "TOTAL_LIBERACAO", Lazy = false)] public decimal VlrTotalLiberacao { get { return totalLiberacao; } set { totalLiberacao = value; } } [Property(Column = "DAT_ULTIMA_LIBERACAO", Lazy = false)] public DateTime DatUltimaLiberacao { get { return datUltimaLiberacao; } set { datUltimaLiberacao = value; } } [Property(Column = "TOTAL_DEVOLUCAO", Lazy = false)] public decimal TotalDevolucao { get { return totalDevolucao; } set { totalDevolucao = value; } } [Property(Column = "DSC_OBSERVACAO", Lazy = false)] public string DescObservacao { get { return descObservacao; } set { descObservacao = value; } } [Property(Column = "DAT_LIBERACAO", Lazy = false)] public DateTime DatLiberacao { get { return datLiberacao; } set { datLiberacao = value; } } [Property(Column = "MES_BASE", Lazy = false)] public int MesBase { get { return mesBase; } set { mesBase = value; } } } } using Dominio.Domain; using NHibernate; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Dominio.DataAccess { public class FinanciamentoDAO { public static List<Financiamento> ListarTodos() { try { ISession sessao = NhibernateHelper.SessaoCorrente; Financiamento financiamento = new Financiamento(); ICriteria criterios = sessao.CreateCriteria(financiamento.GetType()); return criterios.List<Financiamento>().ToList(); } catch (Exception e) { throw new Exception(e.ToString()); } } public static void InserirOuAtualizar(Financiamento financiamento) { ISession sessao = NhibernateHelper.SessaoCorrente; ITransaction transacao = sessao.BeginTransaction(); try { sessao.SaveOrUpdate(financiamento); transacao.Commit(); } catch (Exception e) { transacao.Rollback(); throw new Exception(e.ToString()); } } public static void Deletar(Financiamento financiamento) { ISession sessao = NhibernateHelper.SessaoCorrente; ITransaction transacao = sessao.BeginTransaction(); try { sessao.Delete(financiamento); transacao.Commit(); } catch (Exception e) { transacao.Rollback(); throw new Exception(e.ToString()); } } internal static Financiamento BuscarPorInscEstadual(string InscEstadual) { try { ISession sessao = NhibernateHelper.SessaoCorrente; Financiamento financiamento = new Financiamento(); ICriteria criterios = sessao.CreateCriteria(financiamento.GetType()); criterios.Add(NHibernate.Criterion.Expression.Eq("InscEstadual", InscEstadual)); return criterios.UniqueResult() as Financiamento; } catch (Exception e) { throw new Exception(e.ToString()); } } internal static Financiamento BuscarPorIDFinanciamento(int COD_FINANCIAMENTO) { try { ISession sessao = NhibernateHelper.SessaoCorrente; Financiamento financiamento = new Financiamento(); ICriteria criterios = sessao.CreateCriteria(financiamento.GetType()); criterios.Add(NHibernate.Criterion.Expression.Eq("Codigo", COD_FINANCIAMENTO)); return criterios.UniqueResult() as Financiamento; } catch (Exception e) { throw new Exception(e.ToString()); } } internal static List<Financiamento> ListarPorEmpresa(int ID_EMPRESA) { ISession sessao = NhibernateHelper.SessaoCorrente; Financiamento financiamento; try { financiamento = new Financiamento(); ICriteria criterios = sessao.CreateCriteria(financiamento.GetType()); criterios.CreateAlias("Empresa", "e").Add(NHibernate.Criterion.Expression.Eq("e.Codigo", ID_EMPRESA)); return criterios.List<Financiamento>().ToList(); } catch (Exception e) { throw new Exception(e.ToString()); } } } } using Dominio.DataAccess; using Dominio.Domain; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Dominio.APL { public class AplFinanciamento { public void gravar(Financiamento financiamento) { FinanciamentoDAO.InserirOuAtualizar(financiamento); } public void deletar(Financiamento financiamento) { FinanciamentoDAO.Deletar(financiamento); } public List<Financiamento> listarTodas() { return FinanciamentoDAO.ListarTodos(); } public Financiamento buscarPorInscEstadual(string InscEstadual) { return FinanciamentoDAO.BuscarPorInscEstadual(InscEstadual); } public Financiamento buscarPorIDFinanciamento(int IDFinanciamento) { return FinanciamentoDAO.BuscarPorIDFinanciamento(IDFinanciamento); } public List<Financiamento> listarFinanciamentoPorEmpresa(int idEmpresa) { return FinanciamentoDAO.ListarPorEmpresa(idEmpresa); } } }  
      Esse é meu .cs porém não estou conseguindo fazer funcionar, porque me retorna tudo null ao compilar o código e desconfio que a minha lógica esteja errada.
       
      using Dominio.APL; using Dominio.Domain; using dap.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; namespace dapView.Relatorios.RelFinancLiberadoMesBase { public partial class RelFinancLiberadoMesBase : System.Web.UI.Page { private AplFinanciamento aplFinanciamento = new AplFinanciamento(); private List<Financiamento> financiamento = new List<Financiamento>(); private static bool keyJS { get; set; } protected void Page_Load(object sender, EventArgs e) { keyJS = true; // CarregarComboLiberado(); if (!IsPostBack) { GerenciadorUsuarioPagina.funcao = "RELFIN01"; //btnImprime.Visible = false; } } //Carrega os dados relacionando o tipo de liberação por data //private void CarregarComboLiberado() // { // ddlLiberado.Items.Add("---------Selecione----------"); // ddlLiberado.Items.Add("Mês Base"); // ddlLiberado.Items.Add("Período"); // } protected void btnConsultar_Click(object sender, EventArgs e) { CarregaRelatorio(); } protected void ddlLiberado_SelectedIndexChanged(object sender, EventArgs e) { } public void CarregaRelatorio() { financiamento = aplFinanciamento.listarTodas(); var dados = (from financiamento in financiamento where DateTime.Compare(financiamento.DatUltimaLiberacao, Convert.ToDateTime(txtMesBase.Text.ToString())) == 0 group financiamento by new { financiamento.Codigo, financiamento.Empresa.InscEstadual, financiamento.Empresa.RazaoSocial, financiamento.Empresa.Cnpj, financiamento.Empresa.NomeAbreviado, financiamento.AnoMesBase } into g select new { codigo = g.Key.Codigo, AnoMesBase = g.Key.AnoMesBase, InscricaoEstadual = g.Key.InscEstadual, RazaoSocial = g.Key.RazaoSocial, Cnpj = g.Key.Cnpj, NmeAbreviado = g.Key.NomeAbreviado }).OrderBy(o => o.codigo).ToList(); if (dados.Count() > 0) { //Carrega os dados da gridview de consulta gv.DataSource = dados; gv.DataBind(); gv.UseAccessibleHeader = true; gv.HeaderRow.TableSection = TableRowSection.TableHeader; //Carrega os dados da gridview usada para imprimir gvImprimir.DataSource = dados; gvImprimir.DataBind(); gvImprimir.UseAccessibleHeader = true; gvImprimir.HeaderRow.TableSection = TableRowSection.TableHeader; //mostra botão imprimir //btnImprime.Visible = true; } else { if (keyJS) chamarSwal("aviso", "Não foram encontrados financiamentos para essa data."); // btnImprime.Visible = false; } } private void chamarSwal(string tipo, string mensagem) { var body = (HtmlGenericControl)(Page.Master.FindControl("body")); body.Attributes["onload"] = $"{tipo}(\"{mensagem}\")"; keyJS = false; } } } Esse é o meu html
       
      <%@ Page Title="" Language="C#" MasterPageFile="~/Content/MasterPage.Master" AutoEventWireup="true" CodeBehind="RelFinanciamento.aspx.cs" Inherits="dapView.Relatorios.RelFinancLiberadoMesBase.RelFinancLiberadoMesBase" %> <asp:Content ID="head" ContentPlaceHolderID="headPlaceHolder" runat="server"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css"> <script src="../JsRelatorioFinancLiberadoMesBase.js"></script> <script> var d = "16/09/2019" // date received from card function filldate() { document.getElementById('cardexpirydate').value = d.split('/').reverse().join("-"); } </script> <script> function exibir_ocultar(val) { if (val.value == 'LiberadoMesBase') { document.getElementById('periodo').style.display = 'none'; document.getElementById('MesBase').style.display = 'block'; document.getElementById('periodo').style.display = 'none'; } else { document.getElementById('periodo').style.display = 'block'; document.getElementById('MesBase').style.display = 'none'; } }; </script> </asp:Content> <asp:Content ID="ContentForm" ContentPlaceHolderID="formPlaceHolder" runat="server"> <asp:ScriptManager runat="server"></asp:ScriptManager> <div class="row"> <div class="col-md-12"> <div class="content-box"> <div class="box-title">Financiamento</div> <div class="box-body"> <div id="triage"> <label for="category">Liberado:</label> <div class="form-inline"> <div class="col-md-2"> <label class="radio-inline control-label"> <input checked="checked" name="TaskLog.TaskTypeId" type="radio" value="2"> SIM </label> <label class="radio-inline control-label"> <input id="TaskLog_TaskTypeId" name="TaskLog.TaskTypeId" type="radio" value="1"> NÃO </label> </div> <div id="category-select"> <select onchange="exibir_ocultar(this)" class="col-md-3 form-control" id="category" name="category" style="width: auto"> <option value="LiberadoMesBase">-----------Selecione----------</option> <option value="LiberadoMesBase">Mês Base</option> <option value="LiberadoPeriodo">Período</option> </select> </div> </div> <br /> <div class="row"> <div class="form-group"> <label class="radio-inline control-label"> <input type="radio" name="optradio" checked>Sim</label> <label class="radio-inline"> <input type="radio" name="optradio">Não</label> </div> <br /> <div id="periodo"> <asp:TextBox type="Month" Style="width: 10%" runat="server" ClientIDMode="Static" class="form-control " ID="TextBox1" MaxLength="30"></asp:TextBox> <br /> </div> <br /> <div id="MesBase"> <asp:TextBox type="date" Style="width: 10%" runat="server" ClientIDMode="Static" class="form-control " ID="TextBox2" MaxLength="30"></asp:TextBox> <br /> </div> </div> </div> <div class="row"> <div class="content-box content-box-tabela" id="tabela" style="visibility: hidden"> <asp:GridView class="col-md-12" CssClass="tabela-padrao tabela-padrao-borda dataTable" runat="server" AutoGenerateColumns="False" PageSize="9" ID="gv" Width="100%"> <Columns> <asp:TemplateField HeaderText="Empresa" ItemStyle-HorizontalAlign="Left"> <ItemTemplate> <asp:Label ID="lblCodigo" runat="server" Text='<%# Bind("Codigo") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Valor Financiamento" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:Label ID="lblValorFinanciamento" runat="server" Text='<%# Bind("ValorFinanciamento") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Inscricao Estadual" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:Label ID="lblInscricaoEstadual" runat="server" Text='<%# Bind("InscricaoEstadual") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Ano mes base" ItemStyle-HorizontalAlign="Right"> <ItemTemplate> <asp:Label ID="lblAnoMesBase" runat="server" Text='<%# Bind("AnoMesBase") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> <PagerStyle CssClass="" HorizontalAlign="Center" /> </asp:GridView> </div> </div> </div> <div class="box-footer"> <button runat="server" class="btn btn-padrao" id="btnConsultar" onserverclick="btnConsultar_Click">Consultar</button> </div> </div> <%--IMPRIMIR--%> <div class="container" style="visibility: hidden" id="ConteinerImprimir"> <div class="table" runat="server" style="margin: 0 auto; width: auto;"> <div class="row"> <div class="col-lg-12"> <img src="http://internet.sefaz.es.gov.br/imagens/topo_brasao.png" alt=""> <br> <br> </div> </div> <div class="row" runat="server" style="border-bottom: 2px solid #B0BEC5"> <div class="col-lg-5"> <strong>Financiamento</strong> </div> <div class="col-lg-5" style="text-align: end;" runat="server" id="totalRegistros"></div> </div> </div> <div class="row"> <div class="content-box content-box-tabela"> <asp:GridView class="col-md-12 grid" runat="server" AutoGenerateColumns="False" PageSize="9" ID="gvImprimir" GridLines="None" RowStyle-HorizontalAlign="Center" Width="100%"> <Columns> <asp:TemplateField HeaderText="Empresa" ItemStyle-HorizontalAlign="Left"> <ItemTemplate> <asp:Label ID="lblCodigo" runat="server" Text='<%# Bind("Codigo") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Valor Financiamento" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:Label ID="lblValorFinanciamento" runat="server" Text='<%# Bind("ValorFinanciamento") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Inscricao Estadual" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:Label ID="lblInscricaoEstadual" runat="server" Text='<%# Bind("InscricaoEstadual") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Ano mes base" ItemStyle-HorizontalAlign="Right"> <ItemTemplate> <asp:Label ID="lblAnoMesBase" runat="server" Text='<%# Bind("AnoMesBase") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> <PagerStyle CssClass="" HorizontalAlign="Center" /> </asp:GridView> </div> </div> </div> </div> </div> </asp:Content>  
      Se alguém puder me ajudar, agradeço.
    • By Hállex da Silva Costa
      Alguém poderia me dizer qual a forma mais correta de se utilizar uma classe seguindo as regras e padrões da Orientação a Objeto. Digamos que eu tenha uma classe Abstrata que fará a conexão com o banco de dados, eu crio uma outra classe que herda dessa classe abstrata, o correto seria utilizar os atributos da classe usando Exemplo 1 ou Exemplo 2?
      OBS: se eu usar o Exemplo 1 (que utiliza o parent) ou Exemplo 2 (que utilza o $this) o resultado dos dois é o mesmo como no print abaixo mostra.
      P.S.: Estou pergutando para não acabar fazendo gambiarra.
       
      Codígo Exemplo 1:
      <?php require_once 'db.abstract_class.php'; final class DB extends AbstractDB { public function __construct(String $dbtype, String $host, Int $port, String $dbname, String $charset, String $user, String $pass){ return parent::__construct($dbtype, $host, $port, $dbname, $charset, $user, $pass); } final function Connect(){ $dbtype = parent::getDBType(); $host = parent::getHost(); $port = parent::getPort(); $dbname = parent::getDBName(); $charset = parent::getCharset(); $dbh = new PDO($dbtype . ":host={$host};port={$port}dbname={$dbname};charset{$charset}", parent::getUser(), parent::getPass()); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE); $dbh->setAttribute(PDO::ATTR_PERSISTENT, TRUE); parent::setConnection($dbh); return parent::getConnection(); } final function Disconnect(){} final function selectDB(){} final function insertDB(){} final function updateDB(){} final function deleteDB(){} } ?> Codígo Exemplo 2:
      <?php require_once 'db.abstract_class.php'; final class DB extends AbstractDB { public function __construct(String $dbtype, String $host, Int $port, String $dbname, String $charset, String $user, String $pass){ $this->setDBType($dbtype); $this->setHost($host); $this->setPort($port); $this->setDBName($dbname); $this->setCharset($charset); $this->setUser($user); $this->setPass($pass); } final function Connect(){ $dbtype = $this->getDBType(); $host = $this->getHost(); $port = $this->getPort(); $dbname = $this->getDBName(); $charset = $this->getCharset(); $dbh = new PDO($dbtype . ":host={$host};port={$port}dbname={$dbname};charset{$charset}", $this->getUser(), $this->getPass()); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE); $dbh->setAttribute(PDO::ATTR_PERSISTENT, TRUE); $this->setConnection($dbh); return $this->getConnection(); } final function Disconnect(){} final function selectDB(){} final function insertDB(){} final function updateDB(){} final function deleteDB(){} } ?> Resultado:

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.