Ir para conteúdo

POWERED BY:

Arquivado

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

Ricardo Leonardo

Formatar campo de form

Recommended Posts

Bom dia, tenho que enviar um form e o campo de valor poderá submeter apenas números.

Caso seja digitado "." e ou "," terá que ser desconsiderado no envio... Exemplo se for digitado: 1.000,00 deverá ser submetido 100000.

Alguém tem sabe como tratar isso?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro,

Não sei se no PHP é a mesma coisa, mas no ASP eu utilizaria o "Replace", que substituiria o caracter enviado por "".

 

No caso ficaria replace(variavel, ".", "")

 

Você pode também utilizar o Javascript pra impedir o uso destes caracteres, logo no cadastro dos mesmos.

 

<SCRIPT language="Javascript">

function SomenteNumero(e){
var tecla=(window.event)?event.keyCode:e.which;
if((tecla>47 && tecla<58))
return true;
else{
if (tecla==8 || tecla==0)
return true;
else
return false;
}
}

</JAVASCRIPT>

 

E no campo, do formulário, você chamaria desta forma

 

<INPUT type='text' size='15' name='cdems' maxlength='6' onkeypress='return SomenteNumero(event);'>

 

Neste caso, mesmo se o usuário digitar esses caracteres, ele não será cadastrado.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, vou testar! Abração.



Tentei isso, mas não rolou, ele envia a string money no form...
<?php
$string = ('money');
$novastring = str_replace(".", "", $string);
echo $novastring;
?>
<form action="https://www16.bancodobrasil.com.br/site/mpag/" method="post" name="pagamento">
<input type="hidden" name="dtVenc" value="<?php echo date("dmY");?>">
<input type="hidden" name="urlRetorno" value="retorno.php">
<input type="hidden" name="valor" value="<?php echo $novastring; ?>">
<label >Valor:</label><input type="text" maxlength="15" name="money" /><br/><br/>
<input type="submit" class="submit" value="Doar">

Compartilhar este post


Link para o post
Compartilhar em outros sites

seguinte

em $string vai o valor em si ou seja: 10.00

em novastring vai os parâmetros a ser procurado substituído e em qual variável

 

$valor = $_POST['valor'];

 

$string = ($valor);
$novastring = str_replace(".", "", $string);
echo $novastring;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me desculpe pela insistência, mas acho que não compreendi, ainda não rolou, veja se é isso:

 

<?php
$money = $_POST['money'];
$string = ($money);
$novastring = str_replace(".", "", $string);
?>
<form action="https://www16.bancodobrasil.com.br/site/mpag/" method="post" name="pagamento">
<input type="hidden" name="valor" value="<?php echo $novastring;?>">
<label >Valor:</label><input type="text" maxlength="6" name="money" /><br/><br/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso, neste teu código ele trocara os pontos por nada ou seja 10.00 = 1000

 

ele recebe os dados do form neste caso o valor, e trata a variável e logo imprime ela

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim? no codigo pelo que entendi faz assim:

 

form para o usuario - digita um valor exemplo: 25.66 e submete este formulario a uma pagina php que ira receber estes dados

 

a variavel money recebe o valor digitado no form, e logo abaixo verifica se há pontos se sim retira esses pontos imprimindo 2566

 

é essa a duvida?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, só que quando eu submeto ele pega o valor na hora do envio da variável $novastring e ainda não processou, bom pelo menos é a unica explicação que vejo... Quando aperto submit o Banco processa os dados passados e me retorna o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No lado server, "PHP" não utilize str_replace.

 

Imagina se você tivesse que substituir todo texto que não seja númerico por vazio? Haja linha de código.

 

Use expressão regular:

 

<?php

$post = $_POST['sua_variavel'];

$padrao    = '/[^(0-9)]/';
$substitui = '';

echo preg_replace($padrao, $substitui, $post);

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Raphael, como usaria isso no meu form, envie o campo digitado no form tratado, ou seja quando apertar submit ele envie apenas os números para ser processado pelo action do Banco?

 

<form action="https://www16.bancod...m.br/site/mpag/" method="post" name="pagamento">

<label >Valor:</label><input type="text" maxlength="6" name="valor" /><br/><br/> (enviar apenas os números ditados neste campo)
Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O envio será feito normalmente, com os caracteres digitados pelo usuário. Quando der o submit, o código vai pegar esse campo, verifica se existem os caracteres especificados ("." e ",") e substituirá por vazio...

Compartilhar este post


Link para o post
Compartilhar em outros sites


<html>

<head>

<title>TESTE</title>

<script type="text/javascript">

function validate(evt) {

var theEvent = evt || window.event;

var key = theEvent.keyCode || theEvent.which;

key = String.fromCharCode( key );

var regex = /[0-9]/;

if( !regex.test(key) ) {

theEvent.returnValue = false;

if(theEvent.preventDefault) theEvent.preventDefault();

}

}

</script>

</head>

 

<form action="https://www16.bancod...m.br/site/mpag/" method="post" name="pagamento">

<label for="valor">Valor:</label>

<br />

<input type="text" onkeypress='validate(event)' name="valor" />

<br />

<input type="submit" value="Enviar" />

</form>

 

<?php

 

/* Página que recebe a requisição

 

$valor = $_POST['valor'];

 

$padrao = '/[^(0-9)]/';

$substitui = '';

 

$replace = preg_replace($padrao, $substitui, $valor);

 

$valorMudado = !empty($replace) ? $replace : 0 ;

 

echo $valorMudado;

 

*/

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa (action="https://www16.bancod...m.br/site/mpag/"), seria a página que faz a requisição? deveria ter explicado que não tenho acesso a ela!

 

A action, é a página para onde o formulário vai enviar os dados.

 

Veja isso pra abrir seu entendimento: http://www.bb.com.br/docs/pub/emp/empl/dwn/Orientacoes23Out07.pdf

 

Página 10

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.