vars locais em funções

Bom dia todos,

Novamente venho pedir o auxilio dos colegas.

Criei uma função em um form para buscar informações do cliente e colocar no formulário.

/**
 * Informações cliente
 */

$nome_cli = "";
$end_cli = "";
$bairro_cli = "";
$cep_cli = "";
$cpf_cli = "";
$rg_cli = "";

// Check for record
$check_sql = 
"SELECT id, nome, endereco, bairro, CEP, cpf_cnpj, rg_ie
FROM clientes WHERE id = '".{cliente_id}."'";
sc_lookup(rs, $check_sql);

if (isset({rs[0][0]}))     // Row found
{
$nome_cli = comp({rs[0][1]}, 61);
$end_cli = comp({rs[0][2]}, 61);
$bairro_cli = comp({rs[0][3]}, 19);
$cep_cli = comp({rs[0][4]}, 15);
$cpf_cli = comp({rs[0][5]}, 16);
$rg_cli = comp({rs[0][6]}, 19);
}

{texto_contrato} = "bla bla bla.... ".$nome_cli." e assim por diante...";

Essa função comp é para validar o campo com o tamanho total indicado no segundo parametro.

Se eu comentar toda a parte onde há declaração de variaveis e a consulta sql e atribuir um texto qualquer o campo {texto_contrato} a função funciona perfeitamente porem se houver alguma declaração de variavel local o valor do campo não é alterado.

Acontece isso com alguem? Aguardo…

Edit:

Essa função é chamada através de um evento ajax onClick de um campo

UP~

troque o comp pelo str_pad ou substr do php e teste.
coloque em modo debug, e garanta que o select esta retornando valores.

Bom dia haroldo,

a função comp faz exatamente isso o código dela é o seguinte:

return str_pad($str, $tamanho, "_", STR_PAD_RIGHT);

O select retorna valores também. o que acontece é que se coloco qualquer outro texto no campo ele aceita menos o correto que é o texto do contrato concatenando os nomes e outros valores armazenados em banco. só ocorre especificamente nesse formulario.
Tambem ja certifiquei que o campo possui “espaço” suficiente para receber os valores.

Dei uma revisada no manual e o sc_lookup está habilitado em funções ajax. Está bem confuso isso.

mude o nome das variaveis locais:

$_nome_cli = “”;
$_end_cli = “”;
$_bairro_cli = “”;
$_cep_cli = “”;
$_cpf_cli = “”;
$_rg_cli = “”;

ou use direto :

$rs[0][0] na concatenação.
Exemplo: {texto_contrato} = “bla bla bla… “.$rs[0][1].” e assim por diante…”;

Experimente o if a abaixo no teste do retorno do banco:

if (!empty( $rs[0][0] ))
{…