Jump to content


adrianodemoura

Member Since 27/10/2005
Offline Last Active 24/01/2009, 16:06
-----

Posts I've Made

In Topic: Ajax + Formulario

13/06/2007, 12:21

Eu uso o framework xajax, abaixo tô colocando um código que vai preencher de zeros ó número de um título de eleitor. qualquer dúvida posta aí.

<?php

// codificando o xajax para não ter problemas com acentuação
define ('XAJAX_DEFAULT_CHAR_ENCODING', 'ISO-8859-1' );
// incluindo xajax
include_once("xajax/xajax.inc.php");

// criando a instância xajax
$ajax = new xajax();

// registrano a função PHP no javascript
$ajax->registerFunction("Retorna_Preenchimento");

// função que vai me retornar o valor preenchido de zero
function Retorna_Preenchimento($pVal,$pId,$pMas,$pPre) { //valor,máscara e caracter_que_vai_preencher_o_espaço_vazio
// pegando o valor padrão do input
$retorno = $pVal;

// Instancia o objeto XAJAX response com codificação padrão ISO-8859-1
$objResponse = new xajaxResponse('ISO-8859-1');

// se possui máscara e possui valor, vamo manda bala ....
if (($pMas)&&($pVal)) {
$t = 0;
for ($i=0; $i<strlen($pMas); $i++) { if ($pMas[$i]=="9") $t++; }
$diferenca = $t-strlen($pVal);
if (trim($pPre)>="0") {
if ($diferenca>0) {
$retorno = str_repeat($pPre,$diferenca).$retorno;
}
}
// esta a linha que é o X da questão é ela quem vai retornar o novo valor para o input
$objResponse->addAssign($pId, 'value', $retorno);
}

// Retorna a resposta de XML gerada pelo objeto do xajaxResponse
return $objResponse;
}

// Manda o ajax processar os pedidos acima de funções
$ajax->processRequest();

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Grade Ajax por Adrianoc</title>
<?php $ajax->printJavascript('xajax/'); ?>
<link href="estilo.css" rel="stylesheet" type="text/css" media="all">
</head>
<body>
<input id='titu' type='text' name='ed_titu' maxlength='12' value=''
style="width: 80px; text-align: right; text-transform: uppercase"
onblur=xajax_Retorna_Preenchimento(this.value,this.id,"999999999999","0");>
</input>
</body>
</html>


IPB Skin By Virteq