[RESOLVIDO]Erro evento ajax_onChange

Bom dia meus caros,

estou com um problema totalmente desagradável pois em um gerador de parcelas quando eu altero a data da emissão a data do vencimento não recalcula, sendo já previsto em código…

segue o código…


$date = {data_emissao};
{data_vencimento} = strftime("%Y%m%d" , mktime ( 0, 0, 0, substr ( $date, 4, 2 ), substr ( $date, 6, 2 ) + $intervalo_padrao, substr ( $date, 0, 4 ) ));

há algum problema ou estou fazendo algo errado?

Porque você não utiliza a macro sc_date? Eu acho que ela funciona com eventos ajax.

testarei a mesma funçao utilizando a macro
depois posto o resultado aki.

obrigado

bom meu caro Saulo,
fiz os testes mais infelizmente não deu certo também,

o formulário não recebe a nova data…

o código ficou assim:
Evento Ajax
data_emissao_onChange:

{data_vencimento} = sc_date({data_emissao}, "dd/mm/aaaa", "+ ", {intervalo_parcelas}, 0, 0);

Tenta usar o debug e ver se ele esta pelo menos calculando a data, se sim saberemos que o problema esta na atribuição de valor, aí é só atribuir o valor a uma variável e depois ao campo. Solução meio esdruxula mas pode ser isso!!

verifiquei o campo e esta recebendo o valor da atribuição porém não esta mostrando…

os campos data_emissao e data_vencimento são ambos campos date

O formato esta certo na macro? Eu nunca parei pra ver isso, mas o sc pega o valor da data do banco e aplica uma máscara, tenta pegar o valor direto do banco pra ver o que acontece e coloca o formato no padrão do banco de dados.

meu caro estive enganado
o cash do SC porem a macro nao esta funcionando e nem o refresh …

#tenso

Estou sem idéias então…aí FU!!

fiz teste de tentar atualizar outros campos e o erro esta na hora de alterar o valor mostrado …

todavia vou simplificar e deixar essa funcionalidade para uma próxima versão…

obrigado Saulo.

Vá em parametros da onchange a habilite os campos necessarios

Haroldo, meu problema é que não esta mostrando corretamente, porém calcula exatamente como deve ser feito.
o mais bizarro é que ele não faz o mais fácil …

Vieira,

Em qual campo criaste este evento Ajax?

criei o evento no campo data_emissao

Coloca o AJAX como ONBLUR em {data_emissao}, se for MYSQL vai ficar assim:
{data_vencimento}=sc_data({data_emissao}, “aaaa-mm-dd”, “+”, {intervalo_parcelas}, 0, 0);

Bom ai se não funcionar coloca isso:
// {data_vencimento}=sc_data({data_emissao}, “aaaa-mm-dd”, “+”, {intervalo_parcelas}, 0, 0); // Bloqueia a linha para o teste.

ECHO 'data_emissao = '.{data_emissao}."
";
ECHO 'data_emissao = '.{data_emissao}."
";
ECHO 'intervalo_parcelas = '.{intervalo_parcelas}."
";

Verifique se a {data_emissao} no ECHO esta vindo igual a mascara do sc_data = “aaaa-mm-dd” e o {intervalo_parcelas}>0 (Maior que zero).

** Pronto isso resolve.

Bom dia,

o problema não está no calculo da data e sim no refresh do campo, mesmo assim obrigado.

Eu faço assim:

Crio um método e passo a variável para o parâmetro $data e $dias, $meses, $anos.

function soma_data($data, $dias, $meses, $anos)
{
$data = explode("-", $data);
$newData = date("Y-m-d", mktime(0, 0, 0, $data[2] + $dias,
$data[1] + $meses, $data[0] + $anos) );
return $newData;
}

Bom dia quero agradecer a todos a minha forma de somar a data esta funcionado perfeitamente,
o problema esta no evento ajax que nao esta mostrando o valor certo, entretanto eu ja contornei
essa situação.

Olá pessoal.
Porque será que o Sr. Vieira não coloca como foi resolvida a questão para ajudar os usuários novatos como eu por exemplo.

Se alguém precisar, uso a maneira abaixo, comigo está funcionando perfeitamente:

$horas = 10;
$add = ‘+’.$horas.‘hours’;
$data = date(‘Y-m-d H:i:s’, strtotime($add, mktime($h[0],$h[1],0,$d[1],$d[2],$d[0])));
{nova_data} = date(“Y-m-d”, strtotime($data));
{nova_hora} = date(“H:i”, strtotime($data));