Ir para conteúdo

Arquivado

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

11closed

ERRO em operador, verificação de numero maior

Recommended Posts

Olá, me deparei com um erro aqui, não estou entendendo porque está acontecendo, aparentemente o codigo parece estar correto, mas o erro insiste.


 

function verifica() {  	
	// verifica   
	if (form.valor.value > '<?php echo $saldo; ?>') { 
		alert("Seu saldo \xE9 insuficiente para essa transa\u00e7\u00e3o"); 
		return false;   
    }  
}

</script>


<form id="form" name="form" method="post" action="transferindo.php">
 Valor *: <input type="text"  name="valor" onkeypress="return SomenteNumero(event);"   />  
<input type="submit"   Onclick="return verifica()"  value="Transferir " /> 
</form>

 

Se o numero do input (valor) for maior que  a variavel php $saldo acontece o ERRO com alerta, se for menor segue normalmente, mas o problema é que estou digitando um numero menor e está aparecendo o alerta

 

a variavel php $saldo é = "32,20" se eu digitar o numero 1, 2 ou 3 no input valor, segue normalmente, mas se eu digitar do 4 ao 9 da o erro de alerta, sendo que são numeros menores, porque será que o operador > não está funcionando corretamente?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia. Camarada o seu problema está no fato de que você esta comparando duas Strings ao invés de dois números, o value de campos de formulários,  são strings, ou seja texto, assim como o valor entres aspas no php.

Você pode resolver isso usando parseFloat ou parseInt para o valor do javascript, e no caso do php é só tirar as aspas simples antes e depois do <? ?>.

Agora, tome cuidado, porque pelo que você explicou, o valor do php está com a casa decimal separada por vírgula, quando no javascript, um número decimal você usa um ponto para separar as casas decimais. Então você vai ter que converter seu 32,20 para um 32.20, com uma função php ou com javascript. 

Só um aviso, já vai pensando nos números com ponto no milhar (ex: 1.000,00), porque de novo, no js, esse ponto não existe, então para a conta dar certo no javascript você precisaria trocar: 1.000,32 por 1000.32.

Mas isso é um problema bem comum, na internet você tem várias soluções.

Só vou ficar devendo a comparação entre Numbers e Strings no JS porque isso é um caso à parte...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado @Klawztro deu certo aqui amigo,  eu tive que apenas alterar a variavel PHP  $saldo = (int)$saldo; aí já deu certo, também coloquei var valor = parseFloat(form.valor.value); por via das duvidas rsrs, creio que agora está tudo OK

 

obrigado mais uma vez amigo, isso já estava me deixando louco kkkk

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.