Ir para conteúdo

POWERED BY:

Arquivado

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

rafagets

inserir valores no banco

Recommended Posts

olá...

tenho o seginte script.

 

 

<script language="javascript">
function MascaraMoeda(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;
}
</script>

 

so que quando vou inserir esse valor no mysql em campo DOUBLE ele não insere corretamente...

ex:

se eo digitar 1.000,00 no campo, ele grava no banco 1 e não 1000 o que tenho que fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

no banco, você deve converter para o formato americano antes de gravar

 

usando o ponto como separador decimal

 

1.00 = 1 real, por exemplo.

use o teu server-side para isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o usuário digita

 

1.000,00 (mil)

você converte para

 

1000.00 (mil) e ai sim grava no banco de dados.

 

usa um replace do teu server-side (php, asp), para remover os pontos, e trocar a virgula por ponto.

para assim ficar no formato americano, e então você vai conseguir inserir no banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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