Jump to content


Photo

Preencher Um Campo Sozinho E Não Permitir Que Ele Altere!


  • Faça o login para participar
1 reply to this topic

#1 Lucas de Haro

Lucas de Haro

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino

Posted 10/07/2010, 14:29

Olá, boa tarde!

Presico preencher um campo sozinho, exemplo, fiz uma compra de R$100,00, dai eu coloco no campo entrada o valor R$ 30,00, e eu quero que o campo Saldo dê o que falta ser pago!

PS: Nos campos eu não trabalho com virgula nem ponto, o que facilita, e.g: R$100,00 ira ser digitado 10000.

E.g. da página:
<html>
<head>
<body>
 <form name="pagamento" action="#" method="post">
   Valor total: <?php echo $total; ?><br>
   Valor entrada: <input name="entrada" value="<?php echo $entrada_padrao; ?>" onkeypress="saldo()" /><br>
   Valor restante: <input name="saldo" value="saldo_marca()" /><br>
   <input type="submit" name="Comprar" />
 </form>
</form>
</body>
</head>
</html>

Eu nunca consegui entender JavaScript, hoje fui atrás de aprender, e descobri como pegar o valor do campo.. rsrs
Então estou pensando em algo para o scipt:
<script type="text/javascript>
funtcion saldo()
{
   total = <?php echo $total; ?>
   entrada = document.pagamento.entrada.value

   saldo = total - entrada
   function saldo_marca(saldo)
   {
       document.write(saldo)
   }
}
</script>"

Nem testei, pois deve ter erros, e eu fiquei pensando, o input do saldo não vai atualizar sozinho desse jeito, ai não achei mais tutorial para me ajudar e resolvi postar!

PS: Outra dúvida, o <script> tenho que colocar no dentro da tag <head> ou posso colocar no <body>?


Muito Grato!

Lucas de Haro.

#2 Guilherme Vieira

Guilherme Vieira

    Normal

  • Usuários
  • 113 posts
  • Sexo:Masculino
  • Localidade:Fortaleza, Ceará
  • Interesses:Desenvolvimento Web baseado nos padrões do W3C, HTML5, CSS3, PHP, JavaScript, jQuery, AJAX, SQL, MySQL.

Posted 10/07/2010, 16:17

Boa tarde.

Você pode obter este recurso de auto-complementar, sem precisar utilizar ou definir uma função Javascript.
Utilizando o evento onchange, vvocê pode atualizar o valor do campo "saldo" sem chamar a função.
Eu não aconselho o uso desse evento onkeypress para esse caso porque ele vai chmar a função que você definiu sempre qu o usuário teclar,
ou seja, qnd ele digitar o 3 de 30 (no caso 3000, já que você tirou as vírgulas), a função vai atualizar o campo "saldo" para 9997, qnd o usuário digitar o 0, o campo se atualiza para 9970, e assim sucessivamente, até que o usuário digite o 3000, o que definitivamente não é legal.

Pelo que eu entendi do seu código, as variáveis PHP $entrada_padrao e $total, já vêm de um outro formulário, e
a entrada pode ser alterada pelo usuário.
Se for isso, eu naõ deixaria o campo "saldo" sem proteção, podendo ser alterado pelo usuário e ir para o seu servidor com o valor que ele quisesse. A propriedade disabled dos campos de formulário servem para você exibir conteúdo, mas não permitir que sejam alterados.
Troque o código por esse e veja se funciona.
<html>
<head>
<body>
 <form name="pagamento" action="#" method="post">
   Valor total: <?php echo $total; ?><br />
   Valor entrada: <input name="entrada" id="entrada" value="<?php echo $entrada_padrao; ?>" onchange="document.getElementById('saldo').value='<?php echo ($total - $entrada_padrao); ?>';" /><br />
   Valor restante: <input name="saldo" id="saldo" disabled="disabled" /><br />
   <input type="submit" name="Comprar" />
 </form>
</form>
</body>
</head>
</html>

Os parênteses em ($total - $entrada_padrão), não são necessários, mas eu os coloquei para que echo tenha a certeza de imprimir $total - $entrada_padrão.

Valeu camarada, boa sorte. Se não funcionar, dá uma repostada que a gente vê o que tava errrado.

PS.: Você pode colocar as tagas <script></script> em qualquer lugar da página, mas é altamanete aconselhável colocar nas tags <head></head> pois assim seu script será carregado antes do conteúdo, agilizando sua execução. ;)

Edição feita por: Guilherme Vieira, 10/07/2010, 16:18.

Guilherme Vieira
g.

PS: Te ajudei? Me dá ponto! ^^




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq