Ir ao conteúdo

PHP Receber altura do usuário no formato FLOAT.


Ir à solução Resolvido por Matheus Evandro Rech,

Posts recomendados

Postado

Olá, estou desenvolvendo um formulário html que calcula o imc em php.

Porém a formula só vai funcionar se o usuário digitar sua altura utilizando ponto (ex 1.80), se ele utilizar virgula ou número inteiro vai dar erro.

 

Como eu poderia travar a celula para que só receba a altura com o ponto e que no caso de o usuário digitar de outra forma emita uma resposta no próprio formulário pedindo para ele digitar da forma correta?

  • Moderador
Postado

@Jhon Macedo Se quiser usar a virgula e o ponto, vai precisar da intervenção do javascript. 

 

Mas é possível que você receba o dado com vírgula, e faça um explode e ai monta do jeito certo.

 

Exemplo:

 

//recebe  1,80
$altura = $_POST["altura"];

$separa_os_valores = explode(",", $altura);

//Retorna 1.80
$remonta_com_ponto = $separa_os_valores[0] . "." . $separa_os_valores[1];

Com isso você tem o valor com ponto, mesmo escrevendo a virgula.

Podes ainda, colocar um teste de IF,  SE tiver com virgula, faz a conversão, senão faz o cálculo direto.

  • 3 semanas depois...
Postado

Acho melhor fazer essa validação no cliente com javascript antes de mandar para o servidor. Esse campo pode receber virgula e ponto e você usa replace para deixar sempre com ponto. Validaria também o tamanho da string que deve ter 4 caracteres (3 números e uma virgula X,XX). Em caso de divergência, já informa o erro ao usuário antes de enviar ao servidor. Isso você faz em 2 minutos...

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...