Ir para conteúdo

Arquivado

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

Remazela

PHP - Salvar Múltiplo Registro no MySql

Recommended Posts

Caros amigos

 

Recorro ao auxílio dos amigos referente uma tabela que preciso montar.

 

Preciso montar da seguinte forma:

 

Prod...: PRODUTO X - QUALQUER

      Resp 1: FORNECEDOR Y, valor: R$ 0,00 - Qtde: 000 - Comprar: [   ]

      Resp 2: FORNECEDOR W, valor: R$ 0,00 - Qtde: 000 - Comprar: [   ]

      Resp 3: FORNECEDOR X, valor: R$ 0,00 - Qtde: 000 - Comprar: [   ]

 

Prod...: PRODUTO Y - QUALQUER

      Resp 1: FORNECEDOR W, valor: R$ 0,00 - Qtde: 000 - Comprar: [   ]

      Resp 2: FORNECEDOR X, valor: R$ 0,00 - Qtde: 000 - Comprar: [   ]

      Resp 3: FORNECEDOR Y, valor: R$ 0,00 - Qtde: 000 - Comprar: [   ]

 

Alguém poderia me ajudar de como montar uma tabela parecido com a descrição acima ?

 

Grato,

 

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos

 

Consegui resolver o problema de Visualizar conforme solicitado acima.

 

Agora fiquei com o seguinte problema, que não estou conseguindo resolver. Conforme imagem anexada, estou usando no INPUT um RADIO para selecionar o ITEM requerido, mas quando clico em um RADIO de ITEM, fica selecionado. 

 

O problema é quando no próximo ITEM que selecionar, desmarca o RADIO do ITEM anterior. Como faço para manter os RADIOS selecionados permanecerem marcados ?

 

O meu código abaixo:

            <div class="box-header">
              <h3 class="box-title">Itens da Cotação</h3>
            </div><!-- /.box-header -->

            <div class="box-body">

            <?php

                //Traz o Código de Cliente logado
                  $clientes_clienteId = "$userClientes_clienteId";  

                  $sql_pegaAtivos = 'SELECT pro.codProdClie, pro.produtoDescr, pro.apres_unid, 
                                            pro.clientes_clienteId,
                                            cota.cotacao_cotaId, cota.cotaItensId, cota.cotaNumImport,
                                            cota.cotaNumero, cota.codProdClie,cota.cotaQtde, cota.cotaComenta, 
                                            cota.cotaReferencia
                                       FROM cotacaoItens cota
                                 INNER JOIN produto pro ON pro.codProdClie = cota.codProdClie
                                      WHERE pro.clientes_clienteId = :clientes_clienteId 
                                        AND cota.cotaNumero = :cotaNumero                           
                                   ORDER BY cota.cotaItensId ASC';  
                                      
                  try{
                     $query_pegaAtivos = $conecta->prepare($sql_pegaAtivos);
                     $query_pegaAtivos->bindValue(':clientes_clienteId',$clientes_clienteId,PDO::PARAM_STR);
                     $query_pegaAtivos->bindValue(':cotaNumero',$cotaNumero,PDO::PARAM_STR);         
                     $query_pegaAtivos->execute();
                               
                     $resultado_pegaAtivos = $query_pegaAtivos->fetchAll(PDO::FETCH_ASSOC);
                     $count_pegaAtivos = $query_pegaAtivos->rowCount(PDO::FETCH_ASSOC);

                     }catch(PDOexception $error_pegaAtivos){
                            echo 'Erro ao pegar ativos';
                     }
                               
                      foreach($resultado_pegaAtivos as $resAtivos){
                              $cotacao_cotaId     = $resAtivos['cotacao_cotaId'];             
                              $clientes_clienteId = $resAtivos['clientes_clienteId'];              
                              $cotaItensId        = $resAtivos['cotaItensId'];  
                              $produtoCota        = $resAtivos['codProdClie'];      
                              $cotaNumero         = $resAtivos['cotaNumero'];                    
                              $cotaNumImport      = $resAtivos['cotaNumImport'];
                              $produtoClie        = $resAtivos['codProdClie'];
                              $cotaQtde           = $resAtivos['cotaQtde'];  
                              $cotaComenta        = $resAtivos['cotaComenta'];        
                              $cotaReferencia     = $resAtivos['cotaReferencia'];
                              $descrProd          = $resAtivos['produtoDescr'];
                              $apresProd          = $resAtivos['apres_unid'];               
            ?>

              <div class="box box-primary">
                <div class="box-header with-border" style="background: #E0F2EC;">
                  <h3 class="box-title">
                    <?php echo '<strong>'.$produtoClie.' - '.$descrProd .'</strong> - Qtde: '.$cotaQtde; ?>
                  </h3> 
                  <div class="box-tools pull-right">
                    <button type="button" class="btn btn-box-tool" data-widget="collapse" >
                      <i class="fa fa-minus" style="font-size:18px;"></i>
                    </button>
                  </div>
                </div>
                <!-- /.box-header -->
                <div class="box-body">
                  <div class="table-responsive">
                    <table class="table no-margin">
                      <thead>
                      <tr>
                        <th><i class="fa fa-shopping-cart" style="font-size:18px;"></i></th>
                        <th>Razão Social</th>
                        <th>ESP</th>
                        <th>Qtde</th>
                        <th>Vr Unit.</th>
                        <th>Vr Total.</th>
                      </tr>
                      </thead>

                      <?php
                          //Traz o Código do Produto
                            $codProdClie = $produtoClie;

                            $sql_pegaAtivos = 'SELECT cl.clienteId, cl.razaoSocial, cl.faturaMinimo,
                                                      cr.cotaRespId, cr.cotaRespQtde, cr.cotaRespVlrUnit,
                                                      cr.cotaRespMarca, cr.codProdClie, cr.cotaRespObs, 
                                                      cr.apres_unid, cr.clientes_clienteId,
                                                      cr.cotacaoItens_cotaItensId, cr.cotaNumero, 
                                                      ci.cotaItensId, ci.codProdClie
                                       FROM cotacaoItens ci
                                 INNER JOIN cotacaoResposta cr ON cr.cotacaoItens_cotaItensId = ci.cotaItensId
                                 INNER JOIN clientes AS cl ON cl.clienteId = cr.clientes_clienteId 
                                      WHERE cr.cotaNumero = :cotaNumero
                                        AND cr.codProdClie = :codProdClie
                                   ORDER BY cr.cotaRespVlrUnit ASC ';  
                                                
                            try{
                               $query_pegaAtivos = $conecta->prepare($sql_pegaAtivos);
                  
                               $query_pegaAtivos->bindValue(':cotaNumero',$cotaNumero,PDO::PARAM_STR);         
                               $query_pegaAtivos->bindValue(':codProdClie',$codProdClie,PDO::PARAM_STR);                                
                               $query_pegaAtivos->execute();
                                         
                               $resultado_pegaAtivos = $query_pegaAtivos->fetchAll(PDO::FETCH_ASSOC);
                               $count_pegaAtivos = $query_pegaAtivos->rowCount(PDO::FETCH_ASSOC);

                               }catch(PDOexception $error_pegaAtivos){
                                      echo 'Erro ao pegar ativos';
                               }
                                         
                                foreach($resultado_pegaAtivos as $resAtivos){
                                 $cotaNumero         = $resAtivos['cotaNumero'];                    
                                 $faturaMinimo       = $resAtivos['faturaMinimo']; 
                                 $cotaRespId         = $resAtivos['cotaRespId'];     
                                 $cotaRespQtde       = $resAtivos['cotaRespQtde'];     
                                 $cotaRespVlrUnit    = $resAtivos['cotaRespVlrUnit'];
                                 $cotaRespMarca      = $resAtivos['cotaRespMarca'];     
                                 $cotaRespObs        = $resAtivos['cotaRespObs'];
                                 $codProdClie        = $resAtivos['codProdClie'];
                                 $apres_unid         = $resAtivos['apres_unid'];
                                 $clientes_clienteId = $resAtivos['clientes_clienteId']; 
                                 $razaoSocial        = $resAtivos['razaoSocial']; 

                      ?>                      


                      <?php

                        $fornecedor = "$clientes_clienteId"; 
                        
                        //Cálculo para Multiplicar e Somar o Total Geral dos Itens Cotados
                          $vrTotal = '0';//Variável recebe a Soma Total

                          $cnx = mysql_connect("localhost", "root", "");
                          mysql_select_db("siscotaweb", $cnx);
                          $sql = "SELECT cotaRespQtde, cotaRespVlrUnit FROM cotacaoResposta
                                                                      WHERE clientes_clienteId = '$fornecedor' 
                                                                        AND codProdClie = $codProdClie
                                                                        AND cotaNumero = '$cotaNumero' ";
                          $result = mysql_query($sql); //Executa a consulta

                              while($row = mysql_fetch_array($result)){
                                    $qtde  = number_format($row['cotaRespQtde']); 
                                    $valor = floatval(str_replace(",",".",$row['cotaRespVlrUnit'])); 
                                    $total = $qtde * $valor;                   
                              }
                      
                      ?>  

                      <tbody>
                        <tr>
                          <td align="left" width="10" height="10" rowspan="3"><input type="radio" name="r3"
                              class="flat-red"></td>
                          <td align="left" width="200" height="10">
                              <?php echo '<strong>'.$razaoSocial.'</strong>'; ?></td> 
                          <td align="left" width="10" height="10"><?php echo $apres_unid ; ?></td>
                          <td align="left" width="20" height="10"><?php echo $cotaRespQtde; ?></td>
                          <td align="left" width="20" height="10">
                              <?php echo number_format($cotaRespVlrUnit, 2, ",", "."); ?></td>   
                          <td align="left" width="20" height="10">
                              <?php echo number_format($total, 2, ",", "."); ?></td> 
                        </tr> 

                        <tr>
                          <td align="left">
                              <?php  echo 'Fat. Mínimo:<strong> '. $faturaMinimo.'</strong>'; ?></td> 
                          <td align="left" colspan="4">
                              <?php  echo '<strong>Marca: </strong>'. $cotaRespMarca; ?></td>
                        </tr>   
                        <tr>
                          <td align="left" colspan="5">
                              <?php  echo '<strong>Observação: </strong>'. $cotaRespObs; ?></td>
                        </tr>                        
                      </tbody>

                      <?php }//Fecha foreach ?>

                    </table>

                    <div class="box-footer">
                      <div class="col-md-12">
                        <strong>Comentário Sobre a Compra:</strong>
                        <input type="text" id='comenta' name="comenta" size="180" class="form-control"
                           style="width:100%" onkeyup="up(this)" >
                      </div>
                    </div>
                  </div>
                  
                </div>

              </div>          

              <?php } ?>


              <div class="box-body">
                <form id="frm_itensCota" name="frm_itensCota" action="" method="post" enctype="multipart/form-data">
                    <div style="text-align: right;">
                    <input class="btn btn-danger" type="submit" name="voltar" id="voltar" value="Voltar" 
                           onclick="frm_itensCota.action='painel.php?exe=admin-cliente/cotacao/cotacao_lista'; frm_itensCota.submit()"
                           title="Voltar a Lista de Cotação." />

                     <input type="hidden" name="cotaId" value="<?php echo $cotaId; ?>">                              

                    </div>
                 </form>  
              </div><!-- /.box button -->

          </div><!-- / 1ª. box -->

 

telaCota.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é o comportamento padrão de um RADIO, somente um selecionado. Substitua RADIO por CHECKBOX.

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Gabriel Heming disse:

Esse é o comportamento padrão de um RADIO, somente um selecionado. Substitua RADIO por CHECKBOX.

 

Caro amigo

 

Gabriel

 

Fiz a seguinte alteração e até agora, parece que deu certo.

Anterior:

<td align="left" width="10" height="10" rowspan="5">
    <input type="radio" name="cpr" class="flat-red" value="<?php echo $cotaRespId; ?>" />
</td>

 

Troquei por essa:

<td align="left" width="10" height="10" rowspan="5">
    <input type="radio" name="<?php echo $produtoClie; ?>" 
           class="flat-red" value="<?php echo $cotaRespId; ?>" />
</td>

 

Até agora, funcionou.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você apenas mudou o name. Ou seja, criou um "grupo" de radio buttons diferente. Esse grupo só tem um radio button e por si só não faz sentido algum.

Compartilhar este post


Link para o post
Compartilhar em outros sites
15 minutos atrás, Gabriel Heming disse:

Você apenas mudou o name. Ou seja, criou um "grupo" de radio buttons diferente. Esse grupo só tem um radio button e por si só não faz sentido algum.

 

Amigo Gabriel

 

Pensei em usar o CHECKBOX, mas infelizmente um determinado produto pode ter várias ofertas, mas apenas uma escolhida.

 

O checkbox, fica disponível para marcar todas as opções e no meu caso apenas uma é escolhida.

 

Exemplo:

No produto 101 poderá ter várias opções e apenas uma será marcada
No produto 105 poderá ter várias opções e apenas uma será marcada

Quando marco uma opção do produto 105, a opção do produto 101 é desmarcada. ISSO QUE NÃO QUERO QUE OCORRA.

 

Se utilizar um checkbox, após escolher uma opção, como desabilito os demais ?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora sua explicação está fazendo melhor sentido. Veja o seguinte exemplo: https://codepen.io/gabrielheming/pen/erbBBj

 

Separe os radios em grupos. Como você pode não saber a quantidade total de produtos e/ou itens do produto, utilize vetores (no exemplo, eu coloquei como categoria -> produto).

 

Perceba que existe o grupo categoria[1] e categoria[2]. Estes grupos que definem como o RADIO irá se comportar.

Compartilhar este post


Link para o post
Compartilhar em outros sites
49 minutos atrás, Gabriel Heming disse:

Agora sua explicação está fazendo melhor sentido. Veja o seguinte exemplo: https://codepen.io/gabrielheming/pen/erbBBj

 

Separe os radios em grupos. Como você pode não saber a quantidade total de produtos e/ou itens do produto, utilize vetores (no exemplo, eu coloquei como categoria -> produto).

 

Perceba que existe o grupo categoria[1] e categoria[2]. Estes grupos que definem como o RADIO irá se comportar.

 

Amigo Gabriel

 

Grato por se disponibilizar em me auxiliar. Baseado no seu exemplo surgi dúvidas.

 

Por exemplo:

<form>  
  <fieldset>
    <legend>Categoria 1:</legend>    
      <input id="id1" type="radio" name="categoria[1][]" value="1">
      <label for="id1">Produto 1</label>

      <input id="id2" type="radio" name="categoria[1][]" value="2">
      <label for="id2">Produto 2</label>
  </fieldset>
   
  <fieldset>
    <legend>Categoria 2:</legend>
      <input id="id3" type="radio" name="categoria[2][]" value="1">
      <label for="id3">Produto 1</label>

      <input id="id4" type="radio" name="categoria[2][]" value="2">
      <label for="id4">Produto 2</label>
  </fieldset>
</form>

Como os dados vem do MySql, com vários itens, respostas e etc. 

No id do input você usou: id="id1",  id="id2" ... - aqui seria como informaria o 1,2,3,... ? <== não entendi

No name do input você usou: name="categoria[1][ ]" - aqui seria o código do PRODUTO vindo do MySql ?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

IDs no HTML devem ser únicos, não importam de onde venham. O que é feito ali é a ligação entre o label + o input. Ou seja, se você clicar no label irá marcar o input associado. Se você não utiliza label, isso não faz diferença.

 

Quanto a categoria, sim, seria o produto. Se os itens estão agrupados por produto, adicione o id do produto. Basicamente você devem adicionar um valor que agrupe os itens, não importe qual, apenas que seja o mesmo por cada grupo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 horas atrás, Gabriel Heming disse:

IDs no HTML devem ser únicos, não importam de onde venham. O que é feito ali é a ligação entre o label + o input. Ou seja, se você clicar no label irá marcar o input associado. Se você não utiliza label, isso não faz diferença.

 

Quanto a categoria, sim, seria o produto. Se os itens estão agrupados por produto, adicione o id do produto. Basicamente você devem adicionar um valor que agrupe os itens, não importe qual, apenas que seja o mesmo por cada grupo.

 

Caro amigo

 

Gabriel

 

Seguindo sua orientação, consegui atingir o objetivo que pretendia.

Conforme o exemplo que passou:

    <input id="id1" type="radio" name="categoria[1][]" value="1">
    <label for="id1">Produto 1</label>

 

Ficou assim:

<input id="id1" type="radio" name="<?php echo $produtoClie; ?>[1][]" 
       value="<?php echo $cotaRespId; ?>" class="flat-red" />

 

Apenas mais uma dúvida: para desabilitar um RADIO com DuploClick, como deveria ficar o código ?

 

Tentei fazer algo parecido com o código abaixo, mas não consegui.

<script>
	function limparRadios( radiobutton ) {
	//Limpa Radio com Duplo Click
	   for( i = 0; i < document.radioform[radiobutton].length; i++ )		
		   document.radioform[radiobutton][i].checked = false;		
	}	
</script>

<form name="radioform" >
   <br>&nbsp;&nbsp;
	1<input type="radio" name="radiobutton" value="1" onDblClick="limparRadios('radiobutton');" disabled>&nbsp;&nbsp;&nbsp;&nbsp; 
	2<input type="radio" name="radiobutton" value="2" onDblClick="limparRadios('radiobutton');" disabled>&nbsp;&nbsp;&nbsp;&nbsp;
	3<input type="radio" name="radiobutton" value="3" onDblClick="limparRadios('radiobutton');" disabled>&nbsp;&nbsp;&nbsp;&nbsp;
</form>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos.

 

Me perdoa por perturbá-los com minhas dificuldades.

Preciso salvar múltiplo registro no MySql, mas não estou conseguindo.

 

A informação parte de um input='radio', conforme selecionado quais itens deseja, mando fazer um UPDATE na base de dados. Infelizmente isso não está ocorrendo.

 

Nas linhas abaixo passo qual  ITEM respondido que desejo salvar, junto com o ID do registro.

<input id="id1" type="radio" name="<?php echo $produtoClie; ?>[1][]" class="flat-red"
       value="<?php echo $cotaRespId; ?>" />

<label for="razSoc" style="font-size:14px; color:#07076B;">
       <?php echo '<strong>&nbsp;'.$razaoSocial.'</strong>'; ?>
</label>

 

Não sei como seria o caminho [name do input] correto para passar.

 

Aqui gostaria de salvar na Base de Dados.

<?php
  //alteraCota.php

  $host="localhost";
  $user="root";
  $pass="";
  $dbname="siscotaweb";
  
  $db = new PDO("mysql::host=$host;dbname=$dbname",$user,$pass);
  
    if(isset($_POST['saveCota'])){
       $idSave = $_POST['cotaRespId'];

      foreach($idSave as $id){
    		$db->exec("UPDATE cotacaoResposta set cotaRespStatus='2' where cotaRespId = ".$id);
      }

        header("Location:painel.php?exe=admin-cliente/unidade/unidade_lista");
    }
	
	
?>

 

Abaixo o código fonte da rotina que estou usando:

<?php
    if(!isset($_SESSION)){ 
        session_start(); 
    } 
?>
 
<!-- Include_once Executa a chamada apenas uma única vez -->
<?php include_once("sistema/restrito_cliente.php"); ?>
<?php include_once("sistema/validar_user.php"); ?>

<?php include_once("header.php"); ?>

<?php include_once("menu.php");?>     

  <div class="content-wrapper">

    <section class="content-header">
      <h1>Cotação nº.<?php echo $cotaNumero; ?> em Análise</h1>
      <ol class="breadcrumb">
        <li><a href="painel.php?exe=home/home"><i class="fa fa-dashboard"></i> Home</a></li>
        <li class="active">Cotação em Análise</li>
      </ol>
    </section>

    <!-- Main content -->
    <section class="content">
      <!-- Small boxes (Stat box) -->
      <div class="row">             

        <?php 

        //Variável Passada da Página Anterior
        $cotaNumeroGet = isset($_GET['cotaNumero']) ? $_GET['cotaNumero'] : false;
        $cotaNumero    = isset($_POST['cotaNumero']) ? $_POST['cotaNumero'] : $cotaNumeroGet;       

           $cotaStatus = '2'; 

           //Faço a pesquisa através do código ID
           $sql_pegaProd = 'SELECT * FROM cotacao WHERE cotaNumero = :cotaNumero AND cotaStatus = :cotaStatus';

           try{
             $query_pegaProd = $conecta->prepare($sql_pegaProd);
             $query_pegaProd->bindValue(':cotaNumero',$cotaNumero,PDO::PARAM_STR);  
             $query_pegaProd->bindValue(':cotaStatus',$cotaStatus,PDO::PARAM_STR);               
             $query_pegaProd->execute();

             $resultado_pegaProd = $query_pegaProd->fetchAll(PDO::FETCH_ASSOC);

             }catch(PDOexception $error_pegaProd){
                  echo 'Erro ao pegar o Produto'.$error_pegaProd->getMessage();
             }
             
             //Capturo os dados que desejo
             foreach($resultado_pegaProd as $resProd){
                     $cotaId          = $resProd['cotaId'];
                     $cotaNumero      = $resProd['cotaNumero']; 
                     $edCotaDtInicio  = $resProd['cotaDtInicio'];            
                     $edCotaHrsInicio = $resProd['cotaHrsInicio'];                   
                     $edCotaDtFim     = $resProd['cotaDtFim'];  
                     $edCotaHrsFim    = $resProd['cotaHrsFim'];                   
                     $edCotaTitulo    = $resProd['cotaTitulo'];
             }  

        ?>


    <div class="col-md-12">
      <!-- general form elements -->
      <div class="box box-primary">

        <div class="box-header with-border">
          <h3 class="box-title">Título: <?php echo $edCotaTitulo; ?></h3>
        </div>

          <form role="form" name="frm_cota" id="frm_cota" action="" enctype="multipart/form-data" method="POST" >
        
              <div class="box-body">

                <div class="row invoice-info">

                  <div class="col-sm-2 invoice-col">
                    <address>
                      <strong>Data Abertura:</strong><br/>
                       <?php echo date('d-m-Y', strtotime($edCotaDtInicio)); ?>
                    </address>
                  </div>

                  <div class="col-sm-2 invoice-col">
                    <address>
                      <strong>Hora Abertura:</strong><br/>
                        <?php echo $edCotaHrsInicio; date('H:i:s'); ?>
                    </address>
                  </div>        
                  
                  <div class="col-sm-2 invoice-col">
                    <address>
                      <strong>Data de Encerramento:</strong><br/>
                        <?php echo date('d-m-Y', strtotime($edCotaDtFim)); ?>
                    </address>
                  </div>

                  <div class="col-sm-3 invoice-col">
                    <address>
                      <strong>Hora de Encerramento:</strong><br/>
                        <?php echo $edCotaHrsFim; date('H:i:s'); ?>
                    </address>
                  </div>

                  <div class="col-sm-3 invoice-col">
                    <a href="painel.php?exe=admin-cliente/cotacao/cotacao_altDataHrs&cotaNumero=<?php echo $cotaNumero ?>" 
                       type="button" class="btn btn-warning pull-right" style="font-size: 14px;"> Alterar Data e Hora Encerramento</a>
                  </div>
                  
                </div>

              </div>             

          </form>
   

      <div class="col-md-12">          
            
        <div class="box-header"><h3 class="box-title">Itens Cotados</h3></div>

          <form role="form" name="frm_analisar" id="frm_analisar" action="alteraCota.php" enctype="multipart/form-data" method="POST" >            

            <div class="box-body">

              <?php

                  //Traz o Código de Cliente logado
                    $clientes_clienteId = "$userClientes_clienteId";  

                    $sql_pegaAtivos = 'SELECT pro.codProdClie, pro.produtoDescr, pro.apres_unid, 
                                              pro.clientes_clienteId,
                                              cota.cotacao_cotaId, cota.cotaItensId, cota.cotaNumImport,
                                              cota.cotaNumero, cota.codProdClie,cota.cotaQtde, cota.cotaComenta, 
                                              cota.cotaReferencia
                                         FROM cotacaoItens cota
                                   INNER JOIN produto pro ON pro.codProdClie = cota.codProdClie
                                        WHERE pro.clientes_clienteId = :clientes_clienteId 
                                          AND cota.cotaNumero = :cotaNumero                           
                                     ORDER BY cota.cotaItensId ASC';  
                                        
                    try{
                       $query_pegaAtivos = $conecta->prepare($sql_pegaAtivos);
                       $query_pegaAtivos->bindValue(':clientes_clienteId',$clientes_clienteId,PDO::PARAM_STR);
                       $query_pegaAtivos->bindValue(':cotaNumero',$cotaNumero,PDO::PARAM_STR);         
                       $query_pegaAtivos->execute();
                                 
                       $resultado_pegaAtivos = $query_pegaAtivos->fetchAll(PDO::FETCH_ASSOC);
                       $count_pegaAtivos = $query_pegaAtivos->rowCount(PDO::FETCH_ASSOC);

                       }catch(PDOexception $error_pegaAtivos){
                              echo 'Erro ao pegar ativos';
                       }
                                 
                        foreach($resultado_pegaAtivos as $resAtivos){
                                $cotacao_cotaId     = $resAtivos['cotacao_cotaId'];             
                                $clientes_clienteId = $resAtivos['clientes_clienteId'];              
                                $cotaItensId        = $resAtivos['cotaItensId'];  
                                $produtoCota        = $resAtivos['codProdClie'];      
                                $cotaNumero         = $resAtivos['cotaNumero'];                    
                                $cotaNumImport      = $resAtivos['cotaNumImport'];
                                $produtoClie        = $resAtivos['codProdClie'];
                                $cotaQtde           = $resAtivos['cotaQtde'];  
                                $cotaComenta        = $resAtivos['cotaComenta'];        
                                $cotaReferencia     = $resAtivos['cotaReferencia'];
                                $descrProd          = $resAtivos['produtoDescr'];
                                $apresProd          = $resAtivos['apres_unid'];   
                               
              ?>

              <fieldset>

                <div class="box-header with-border" style="background: #E0F2EC;">
                  <h3 class="box-title" style="font-size:18px;">
                    <?php echo '<strong>'.$produtoClie.' - '.$descrProd .'</strong> - Qtde: '.$cotaQtde; ?>
                  </h3> 
                </div>
                      <?php
                          //Traz o Código do Produto
                            $codProdClie = $produtoClie;

                            $sql_pegaAtivos = 'SELECT cl.clienteId, cl.razaoSocial, cl.faturaMinimo,
                                                      cr.cotaRespId, cr.cotaRespQtde, cr.cotaRespVlrUnit,
                                                      cr.cotaRespMarca, cr.codProdClie, cr.cotaRespObs, 
                                                      cr.apres_unid, cr.clientes_clienteId,
                                                      cr.cotacaoItens_cotaItensId, cr.cotaNumero, 
                                                      ci.cotaItensId, ci.codProdClie
                                       FROM cotacaoItens ci
                                 INNER JOIN cotacaoResposta cr ON cr.cotacaoItens_cotaItensId = ci.cotaItensId
                                 INNER JOIN clientes AS cl ON cl.clienteId = cr.clientes_clienteId 
                                      WHERE cr.cotaNumero = :cotaNumero
                                        AND cr.codProdClie = :codProdClie
                                   ORDER BY cr.cotaRespVlrUnit ASC ';  
                                                
                            try{
                               $query_pegaAtivos = $conecta->prepare($sql_pegaAtivos);
                  
                               $query_pegaAtivos->bindValue(':cotaNumero',$cotaNumero,PDO::PARAM_STR);         
                               $query_pegaAtivos->bindValue(':codProdClie',$codProdClie,PDO::PARAM_STR);                                
                               $query_pegaAtivos->execute();
                                         
                               $resultado_pegaAtivos = $query_pegaAtivos->fetchAll(PDO::FETCH_ASSOC);
                               $count_pegaAtivos = $query_pegaAtivos->rowCount(PDO::FETCH_ASSOC);

                               }catch(PDOexception $error_pegaAtivos){
                                      echo 'Erro ao pegar ativos';
                               }
                                         
                            foreach($resultado_pegaAtivos as $resAtivos){
                                 $cotaNumero         = $resAtivos['cotaNumero'];                    
                                 $faturaMinimo       = $resAtivos['faturaMinimo']; 
                                 $cotaRespId         = $resAtivos['cotaRespId'];     
                                 $cotaRespQtde       = $resAtivos['cotaRespQtde'];     
                                 $cotaRespVlrUnit    = $resAtivos['cotaRespVlrUnit'];
                                 $cotaRespMarca      = $resAtivos['cotaRespMarca'];     
                                 $cotaRespObs        = $resAtivos['cotaRespObs'];
                                 $codProdClie        = $resAtivos['codProdClie'];
                                 $apres_unid         = $resAtivos['apres_unid'];
                                 $clientes_clienteId = $resAtivos['clientes_clienteId']; 
                                 $razaoSocial        = $resAtivos['razaoSocial']; 
                            
                      ?>                 

                      <?php

                        //Cálculo para Multiplicar e Somar o Total Geral dos Itens Cotados
                        $fornecedor = "$clientes_clienteId";                       
                        $vrTotal = '0';//Variável recebe a Soma Total

                          $cnx = mysql_connect("localhost", "root", "");
                          mysql_select_db("siscotaweb", $cnx);
                          $sql = "SELECT cotaRespQtde, cotaRespVlrUnit FROM cotacaoResposta
                                                                      WHERE clientes_clienteId = '$fornecedor' 
                                                                        AND codProdClie = $codProdClie
                                                                        AND cotaNumero = '$cotaNumero' ";
                          $result = mysql_query($sql); //Executa a consulta

                          while($row = mysql_fetch_array($result)){
                                $qtde  = number_format($row['cotaRespQtde']); 
                                $valor = floatval(str_replace(",",".",$row['cotaRespVlrUnit'])); 
                                $total = $qtde * $valor;                   
                          }
                            
                      ?>        


                    <div class="box box-default">                   
                      <br/>

                      <input id="id1" type="radio" name="<?php echo $produtoClie; ?>[1][]" class="flat-red"
                             value="<?php echo $cotaRespId; ?>" />

                      <label for="razSoc" style="font-size:14px; color:#07076B;">
                        <?php echo '<strong>&nbsp;'.$razaoSocial.'</strong>'; ?>
                      </label>
               
                        <div class="box-body">
                        
                          <div class="col-sm-3 invoice-col">
                            <address>
                              Espécie:
                              <strong><?php echo $apres_unid; ?></strong>
                            </address>
                          </div>        
                          
                          <div class="col-sm-3 invoice-col">
                            <address>
                              Quantidade:
                              <strong><?php echo $cotaRespQtde; ?></strong>
                            </address>
                          </div>

                          <div class="col-sm-3 invoice-col">
                            <address>
                              Valor Unitário: R$
                              <strong><?php echo number_format($cotaRespVlrUnit, 2, ",", "."); ?></strong>
                            </address>
                          </div>
                          
                          <div class="col-sm-3 invoice-col">
                            <address>
                              Valor Total: R$
                              <strong><?php echo number_format($total, 2, ",", "."); ?></strong>
                            </address>
                          </div>
                          

                          <?php
                            $fornecedor = "$clientes_clienteId"; 
                            
                            $cnx = mysql_connect("localhost", "root", "");
                            mysql_select_db("siscotaweb", $cnx);
                            $sql = "SELECT faturaValor, faturaPrazoEntrega, desc_pgto 
                                                         FROM fatura
                                                        WHERE clientes_clienteId = '$fornecedor' 
                                                          AND faturaCotaNumero = '$cotaNumero' ";
                            $result = mysql_query($sql); //Executa a consulta

                                while($row = mysql_fetch_array($result)){
                                      $faturaPrazoEntrega = $row['faturaPrazoEntrega'];
                                      $desc_pgto = $row['desc_pgto'];
                                      $valor = floatval(str_replace(",",".",$row['faturaValor'])); 
                                      $res = $valor;                   
                                }  
                           
                            if($res == $valor) { ?>

                              <div class="col-sm-3 invoice-col">
                                <address>
                                  Prazo de Entrega:
                                  <strong><?php echo $faturaPrazoEntrega; ?></strong> Dia(s)
                                </address>
                              </div>        
                              
                              <div class="col-sm-6 invoice-col">
                                <address>
                                  Condição de Pagamento:
                                  <strong><?php echo $desc_pgto; ?></strong>
                                </address>
                              </div>

                            <?php  }  ?> 

                              <div class="col-sm-3 invoice-col">
                                <address>
                                  Faturamento Mínimo: R$
                                  <strong><?php echo $faturaMinimo; ?></strong>
                                </address>
                              </div>                            

                          <div class="col-sm-12 invoice-col">
                            <address>
                              Observação:
                              <strong><?php echo $cotaRespObs; ?></strong>
                            </address>
                          </div>                 

                        </div>               
                      </div>

                    </fieldset>

                    <?php } ?><!-- 2º /.Foreach -->
              
                    <fieldset>
                      <div class="col-md-12">
                        <strong>Comentário Sobre a Compra:</strong>
                        <input type="text" id='comenta' name="comenta" size="180" class="form-control"
                               style="width:100%" onkeyup="up(this)" >
                      </div>
                    </fieldset>
                    <hr/>
            
              <?php } ?><!--1º /.Foreach -->

            </div><!-- /.div box -->


          </form>    

              <div style="text-align: right;">
                <input class="btn btn-primary" type="submit" name="saveCota" id="saveCota" value="Salvar" 
                       title="Voltar a Lista de Cotação." />

                <input type="hidden" name="cotaId" value="<?php echo $cotaId; ?>" /> 
                <input type="hidden" name="cotaRespId" value="<?php echo $cotaRespId; ?>" /> 

              </div>
              <br/>        

      </div>



          <div class="box-body">
            <form id="frm_itensCota" name="frm_itensCota" action="" method="post" enctype="multipart/form-data">
              <div style="text-align: right;">
                <input class="btn btn-danger" type="submit" name="voltar" id="voltar" value="Voltar" 
                       onclick="frm_itensCota.action='painel.php?exe=admin-cliente/cotacao/cotacao_lista'; frm_itensCota.submit()" title="Voltar a Lista de Cotação." />

                <input type="hidden" name="cotaId" value="<?php echo $cotaId; ?>" /> 

              </div>
            </form>  
          </div><!-- /.box button -->

          </div><!-- / 1ª. box -->

        </div><!-- /.col -->
            

  </div><!-- fim da row -->
  
 </section>
  

</div>

     
<?php include_once("footer.php");?>

<!--Script para Validar o Formulário -->
<script language="JavaScript" >

    function up(lstr){              //converte minusculas em maiusculas
      var str=lstr.value;           //obtem o valor
      lstr.value=str.toUpperCase(); //converte as strings e retorna ao campo
    }

    //Flat red color scheme for iCheck
    $('input[type="checkbox"].flat-red, input[type="radio"].flat-red').iCheck({
      checkboxClass: 'icheckbox_flat-green',
      radioClass   : 'iradio_flat-green'
    })    

</script>    

 

Grato,

 

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

A única coisa errada no código seriam esses disabled, pois, eles desativam o input. No mais o código está funcionando.

https://codepen.io/gabrielheming/pen/deawOZ

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uni ambos os tópicos para ficar mais fácil (é praticamente o mesmo problema em ambos).

 

-----------------------------------------------------------

 

Quando eu lhe passei o script, acredito que eu tenha deixado passar duas coisas (um erro seu e um meu).

 

Primeiro de tudo, mantenha o name o mesmo para todos, apenas mude o ID do seu input. Ou seja, mude isto:

name="<?php echo $produtoClie; ?>[1][]"

para isso:

name="item[<?php echo $produtoClie; ?>][]"

 

Outro ponto, é que eu adicionei colchetes ([]) extras. Ele não se faz necessário para radio buttons, logo, você pode remover os colchetes extras, que ficará assim:

name="item[<?php echo $produtoClie; ?>]"

 

Logo, seu código final deve ficar similar a esse:

<input id="item<?php echo $produtoClie; ?>" type="radio" name="item[<?php echo $produtoClie; ?>]" class="flat-red"
       value="<?php echo $cotaRespId; ?>" />

<label for="item<?php echo $produtoClie; ?>" style="font-size:14px; color:#07076B;">
       <?php echo '<strong> '.$razaoSocial.'</strong>'; ?>
</label>

Veja que eu também corrigi o ID e o FOR. Pois, o ID tem que ser único e o FOR deve apontar para o ID.

 

Da forma que está feita agora, você só precisa usar da seguinte forma:

foreach($_POST['item'] as $produtoClie => $value)
{
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo

 

Gabriel

 

peço muitas e muitas vezes desculpa pela minha ignorância, burrice e falta de conhecimento.

 

Infelizmente nunca gravei e alterei múltiplos arquivos em MySql, por isso minha falta de conhecimento.

 

Tentei fazer assim, mas não deu certo, não gravou.

<?php
  //alteraCota.php

  $servidor = "localhost";
  $usuario = "root";
  $senha = "";
  $dbname = "siscotaweb";
  
  //Criar a conexao
  $conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
  
    if(isset($_POST['saveCota'])){
      $idSave = $_POST['cotaRespId'];

      foreach($_POST['item'] as $produtoClie => $value){
    		$db->exec("UPDATE cotacaoResposta set cotaRespStatus='2' where cotaRespId = '$idSave' ");
            $res = mysqli_query($conn, $db);
      }

        header("Location:painel.php?exe=admin-cliente/cotacao/cotacao_lista");
    }
	
	
?>

 

 

Por favor, pode me ajuda só nessa parte, dou minha palavra que não irei mais incomodar o amigo nessa parte.

 

Grato,

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ative a exibição de erros. Outro ponto é que você está misturando algumas coisas, essa variável $db não existe no seu código.

 

No mais, deve corrigir apenas o insert/update no banco de dados, veja este artigo: 

http://rberaldo.com.br/como-atualizar-php-mysql-mysqli/

Compartilhar este post


Link para o post
Compartilhar em outros sites
28 minutos atrás, Gabriel Heming disse:

Ative a exibição de erros. Outro ponto é que você está misturando algumas coisas, essa variável $db não existe no seu código.

 

No mais, deve corrigir apenas o insert/update no banco de dados, veja este artigo: 

http://rberaldo.com.br/como-atualizar-php-mysql-mysqli/

 

Caro amigo Gabriel

 

Obrigado por enviar a leitura em anexo, vai me ajudar bastante.

 

Mas infelizmente na parte que estou tentando executar, não achei nada que pudesse me auxiliar.

 

Como o amigo constatou, estou tentando executar algo que para muitos é simples, mas para mim, desculpa a palavra, está sendo um pesadelo tentar resolver.

 

Utilizei o código abaixo para ver se consegui, mas infelizmente nada.

<?php
  //alteraCota.php

  $servidor = "localhost";
  $usuario = "root";
  $senha = "";
  $dbname = "siscotaweb";
  
  //Criar a conexao
  $conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
  
    if(isset($_POST['saveCota'])){
      $idSave = $_POST['cotaRespId'];

      foreach($_POST['item'] as $produtoClie => $value){
    		$db->exec("UPDATE cotacaoResposta set cotaRespStatus='2' where cotaRespId = '$idSave' ");
            $res = mysqli_query($conn, $db);
      }

        header("Location:painel.php?exe=admin-cliente/cotacao/cotacao_lista");
    }
	
	
?>

 

Amigo, peço HUMILDEMENTE socorro, ajuda. POR FAVOR.

 

Só falta essa parte para eu entender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja bem, nessa linha, você cria a conexão:

$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);

Nessa outra linha, você está criando o update:

$db->exec("UPDATE cotacaoResposta set cotaRespStatus='2' where cotaRespId = '$idSave' ");

Entretanto, a variável $db não existe. É mais provável que você tenha copiado de outro script que funcionava, mas não foi adptado corretamente.

 

Já, na linha seguinte, você utiliza novamente mysqli:

$res = mysqli_query($conn, $db);

O que está errado no seu código é que a query deve ir direto na função mysqli_query, algo assim:

$res = mysqli_query($conn, "UPDATE table....");

E a linha com a variável $db deve ser excluída.

 

Para maiores dúvidas, o artigo explica sobre tudo isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo Gabriel.

 

Muito grato por sua ajuda, conforme sua explicação ficou assim para salvar:

              <?php 
 
                //Salva os Itens Selecionados na Cotação
                  if(isset($_POST['saveCota']) && $_POST['saveCota'] == 'Salvar'){

                      $servidor = "localhost";
                      $usuario = "root";
                      $senha = "";
                      $dbname = "siscotaweb";
                      
                      //Criar a conexao
                      $conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
                      
                        if(isset($_POST['saveCota'])){            

                          foreach($_POST['item'] as $codProdClie => $value){
                            $res = mysqli_query($conn, "UPDATE cotacaoResposta set cotaRespStatus = '2'
                                                         WHERE cotaRespId = '$value' ");
                          }
                        
                        }

                  } //Fim do IF

              ?>   

 

no form ficou assim:

                        <input class="flat-red" type="radio" id="item<?php echo $codProdClie; ?>" 
                               name="item[<?php echo $codProdClie; ?>]" value="<?php echo $cotaRespId; ?>"
                               <?php if($cotaRespStatus=='2'){echo 'checked';}?> />
                       
                        <label for="item<?php echo $codProdClie; ?>" style="font-size:14px; color:#07076B;">
                               <?php echo '<strong> '.$razaoSocial.'</strong>'; ?>
                        </label>
                      

 

Apenas mais uma dúvida: como salvaria junto com o CÓDIGO um campo de comentário, caso o usuário acha necessário:

 

o campos está assim:

                      <fieldset>
                        <div class="col-md-12">
                          <strong>Comentário Sobre a Compra:</strong>
                          <input type="text" name="comenta[]" size="180" class="form-control"
                                 style="width:100%" onkeyup="up(this)" >
                        </div>
                      </fieldset>
                      <hr/> 

 

Como salvaria no banco, conforme sua explicação já passada ?

 

Grato,

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos.
       
      Quando programava em DOS. utilizava algumas teclas de atalho para: SALVAR / EDITAR / EXCLUIR / IMPRIMIR.
      Por exemplo:
      Salvar ----> ALT+S
      Editar ----> ALT+E
      Excluir --> ALT+X
      Imprimir -> ALT+I

      no PHP tem como colocar esses ATALHOS nos button, para o usuário trabalhar com esses atalhos e como seria ?

      grato,
       
      Cesar
    • Por violin101
      Caros Amigos, saudações.
       
      Por favor, me perdoa em postar uma dúvida.
       
      Preciso criar uma Rotina onde o usuário possa buscar na Base de Dados de Produtos, tanto por Código e Descrição, ou seja:
      - caso o usuário digita o Código, mostra os dados do Produto.
      - caso o usuário digita a Descrição, mostra os dados do Produto
       
      Fiz uma Rotina, onde o usuário digita a DESCRIÇÃO com a função AUTOCOMPLETE.    <=== está funcionando certinho.
       
      Minha dúvida é como faço para DIGITAR o Código e mostrar os dados também.
       
      o meu AutoComplete na MODEL está assim.
      public function autoCompleteProduto($q){ $this->db->select('*' ) ->from('produtos') ->where('produtos.statusProd',1) ->like('descricao', $q) ->limit(5) ->order_by('descricao', 'ASC'); $query = $this->db->get(); if ($query->num_rows() > 0) { foreach ($query->result_array() as $row) { $row_set[] = ['label' => str_pad($row['idProdutos'], '5', '0', STR_PAD_LEFT).' - '.$row['descricao'], 'id' => $row['idProdutos'], 'descricao' => $row['descricao'], 'cod_interno' => $row['cod_interno'], 'prd_unid' => $row['prd_unid'], 'estoque_atual' => $row['estoque_atual'] ]; } echo json_encode($row_set); } }  
       
      no CONTROLLER está assim:
      public function autoCompleteProduto() { $this->load->model('estoque/lancamentos_model'); if (isset($_GET['term'])) { $q = strtolower($_GET['term']); $this->lancamentos_model->autoCompleteProduto($q); } }  
       
      na VIEW está assim:
      <div class="col-md-10"> <label for="idProdutos">Produto:</label> <input type="hidden" name="idProdutos" id="idProdutos"> <input type="text" class="form-control" id="descricao" name="descricao" style="font-size:15px; font-weight:bold;" placeholder="Pesquisar por descrição do produto" disabled> </div>  
      VIEW + JAVASCRIPT
       
      //Função para trazer os Dados pelo o AutoComplete. function resolveAutocomplete() { $("#descricao").autocomplete({ source: "<?php echo base_url(); ?>estoque/lancamentos/autoCompleteProduto/", minLength: 2, select: function (event, ui) { $("#idProdutos").val(ui.item.id); $("#cod_interno").val(ui.item.cod_interno); $("#descricao").val(ui.item.descricao); $("#prd_unid").val(ui.item.prd_unid); $("#estoque_atual").val(ui.item.estoque_atual); $("#qtde").focus(); } }); } // inicia o autocomplete resolveAutocomplete();  
      Grato,
       
      Cesar
    • Por belann
      Olá!
       
      Estou tentando criar um projeto laravel e está dando o seguinte erro 
      curl error 60 while downloading https://getcomposer.org/versions: SSL certificate problem: unable to get local issu
        er certificate
      Já tentei atualizar o composer, mas dá o mesmo erro acima.
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma dúvida de validação de INPUT com função moeda.
       
      Tenho um input onde o usuário digita um valor qualquer, por exemplo: 1.234,56
      o problema é quando precisa atualizar o valor.
       
      Quando o usuário atualizar o input fica assim: 1.234,
       
      como faço para atualizar as casas decimais, conforme o valor for sendo alterado ?
       
      o input está assim:
       
      <div class="col-md-2"> <label for="">Valor Unitário</label> <input type="text" class="form-control" id="estoqprod" name="estoqprod" style="font-size:15px; font-weight:bold; width:100%; text-align:center;" placeholder="0,00" OnKeyUp="calcProd();" onkeypress="return(FormataMoeda(this,'.',',',event))" > </div>  
      a função para formatar o input para moeda está assim:
      obs.: a Função CalcProd está executando corretamente
      function calcProd(){ //Obter valor digitado do produto var estoq_prod = document.getElementById("estoqprod").value; //Remover ponto e trocar a virgula por ponto while (estoq_prod.indexOf(".") >= 0) { estoq_prod = estoq_prod.replace(".", ""); } estoq_prod = estoq_prod.replace(",","."); //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Calcula o Valor do Desconto if (prod_qtde > 0 && estoq_prod > 0) { calc_total_produto = parseFloat(prod_qtde) - parseFloat(estoq_prod); var numero = calc_total_produto.toFixed(2).split('.'); //Calculo para não deixar GRAVAR valores negativos if (calc_total_produto < 0 ) { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.') * -1; document.getElementById("qtdeTotal").value = numero.join(','); } else { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("qtdeTotal").value = numero.join(','); } } else { if (estoq_prod > 0) { document.getElementById("qtdeTotal").value = document.getElementById("estoqprod").value; } else { document.getElementById("qtdeTotal").value = "0,00"; } } } /*---Função para Formatar Campo para Moeda [R$]---*/ function FormataMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){ var sep = 0; var key = ''; var i = j = 0; var len = len2 = 0; var strCheck = '0123456789'; var aux = aux2 = ''; var whichCode = (window.Event) ? e.which : e.keyCode; if (whichCode == 13) return true; key = String.fromCharCode(whichCode); // Valor para o código da Chave if (strCheck.indexOf(key) == -1) return false; // Chave inválida len = objTextBox.value.length; for(i = 0; i < len; i++) if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break; aux = ''; for(; i < len; i++) if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i); aux += key; len = aux.length; if (len == 0) objTextBox.value = ''; if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux; if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux; if (len > 2) { aux2 = ''; for (j = 0, i = len - 3; i >= 0; i--) { if (j == 3) { aux2 += SeparadorMilesimo; j = 0; } aux2 += aux.charAt(i); j++; } objTextBox.value = ''; len2 = aux2.length; for (i = len2 - 1; i >= 0; i--) objTextBox.value += aux2.charAt(i); objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len); } return false; }  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma dúvida de validação de INPUT com função moeda.
       
      Tenho um input onde o usuário digita um valor qualquer, por exemplo: 1.234,56
      o problema é quando precisa atualizar o valor.
       
      Quando o usuário atualizar o input fica assim: 1.234,
       
      como faço para atualizar as casas decimais, conforme o valor for sendo alterado ?
       
      o input está assim:
       
      <div class="col-md-2"> <label for="">Valor Unitário</label> <input type="text" class="form-control" id="estoqprod" name="estoqprod" style="font-size:15px; font-weight:bold; width:100%; text-align:center;" placeholder="0,00" OnKeyUp="calcProd();" onkeypress="return(FormataMoeda(this,'.',',',event))" > </div>  
      a função para formatar o input para moeda está assim:
      obs.: a Função CalcProd está executando corretamente
      function calcProd(){ //Obter valor digitado do produto var estoq_prod = document.getElementById("estoqprod").value; //Remover ponto e trocar a virgula por ponto while (estoq_prod.indexOf(".") >= 0) { estoq_prod = estoq_prod.replace(".", ""); } estoq_prod = estoq_prod.replace(",","."); //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Calcula o Valor do Desconto if (prod_qtde > 0 && estoq_prod > 0) { calc_total_produto = parseFloat(prod_qtde) - parseFloat(estoq_prod); var numero = calc_total_produto.toFixed(2).split('.'); //Calculo para não deixar GRAVAR valores negativos if (calc_total_produto < 0 ) { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.') * -1; document.getElementById("qtdeTotal").value = numero.join(','); } else { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("qtdeTotal").value = numero.join(','); } } else { if (estoq_prod > 0) { document.getElementById("qtdeTotal").value = document.getElementById("estoqprod").value; } else { document.getElementById("qtdeTotal").value = "0,00"; } } } /*---Função para Formatar Campo para Moeda [R$]---*/ function FormataMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){ var sep = 0; var key = ''; var i = j = 0; var len = len2 = 0; var strCheck = '0123456789'; var aux = aux2 = ''; var whichCode = (window.Event) ? e.which : e.keyCode; if (whichCode == 13) return true; key = String.fromCharCode(whichCode); // Valor para o código da Chave if (strCheck.indexOf(key) == -1) return false; // Chave inválida len = objTextBox.value.length; for(i = 0; i < len; i++) if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break; aux = ''; for(; i < len; i++) if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i); aux += key; len = aux.length; if (len == 0) objTextBox.value = ''; if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux; if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux; if (len > 2) { aux2 = ''; for (j = 0, i = len - 3; i >= 0; i--) { if (j == 3) { aux2 += SeparadorMilesimo; j = 0; } aux2 += aux.charAt(i); j++; } objTextBox.value = ''; len2 = aux2.length; for (i = len2 - 1; i >= 0; i--) objTextBox.value += aux2.charAt(i); objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len); } return false; }  
      Grato,
       
      Cesar
×

Informação importante

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