Autor Tópico: Ajax Onchange, Não funciona corretamente, ora funciona ora não funciona  (Lida 531 vezes)

jcrlocacao

  • Novato
  • *
  • Mensagens: 12
  • Samuel Valentim
Bom Dia Pessoal,
Estou com um problema a 3 dias e não consigo resolver

Tenho uma tabela de veículos cadastrados no banco, nesta tabela também tem campos de motorista, centro de custo e serviço, para já predetermina quando escolher pela placa do veículo:

Já no ScriptCase existe um campo VEÍCULO, o tipo é Texto Auto-Complete, quando coloca a letra já puxa as placas e quando escolhe a placa automaticamente, através do recurso ajax OnChange, ele lança o motorista padrão, o centro de custo e serviço, abaixo segue o script do ajax

$sql = 'SELECT VEIC_ID,VEIC_MOTORISTA FROM tb_veiculo WHERE VEIC_ID ='.{COMB_VEICULO};
sc_lookup(ds,$sql);
{COMB_MOTORISTA} = {ds[0][1]};

$sql1 = 'SELECT VEIC_CENTRO,VEIC_ID FROM tb_veiculo WHERE VEIC_ID ='.{COMB_VEICULO};
sc_lookup(sql,$sql1);
{COMB_CENTRO} = {sql[0][0]};

$sql2 = 'SELECT VEIC_SERVICE,VEIC_ID FROM tb_veiculo WHERE VEIC_ID ='.{COMB_VEICULO};
sc_lookup(dsd,$sql2);
{COMB_SERVICE} = {dsd[0][0]};

Até ai tudo bem a questão é que quando coloca a placa o  Centro de Custo e o Serviço aparece normalmente, e o motorista ora funciona, ora não aparece e não sei o que fazer já tentei de tudo me ajudem, desde já agradeço
« Última modificação: Agosto 31, 2015, 10:10:14 am por jcrlocacao »
Samuel Valentim
Soluções em Informática

Haroldo

  • Expert
  • *****
  • Mensagens: 6262
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Ajax Onchange, Não funciona corretamente, ora funciona ora não funciona
« Responder #1 Online: Agosto 31, 2015, 12:00:25 pm »
Você não critica nenhum dos lookups?

É certo o retorno verdadeiro de todos os selects?

Coloque o modo debug e avalie o que o sc está enxergando nessas instruções

jcrlocacao

  • Novato
  • *
  • Mensagens: 12
  • Samuel Valentim
Re:Ajax Onchange, Não funciona corretamente, ora funciona ora não funciona
« Responder #2 Online: Agosto 31, 2015, 03:32:16 pm »
hAroldo desde já agradeço pela ajuda, bom coloquei em modo Debug e todas as consultas estão tudo certinho e os lookups o retorno são todos verdadeiros. o pior de tudo haroldo é que as outras consultas estão tudo certinhas e puxam automaticamente só o campo motorista que não puxa
« Última modificação: Agosto 31, 2015, 03:40:19 pm por jcrlocacao »
Samuel Valentim
Soluções em Informática

Jailton

  • Expert
  • *****
  • Mensagens: 2026
Re:Ajax Onchange, Não funciona corretamente, ora funciona ora não funciona
« Responder #3 Online: Agosto 31, 2015, 04:00:18 pm »
Você não critica nenhum dos lookups?

É certo o retorno verdadeiro de todos os selects?

Coloque o modo debug e avalie o que o sc está enxergando nessas instruções

Como o Haroldo falou, o correto é verificar o retorno se não fizer isso ele não dá erro mas não mostra o restante,  e usar o evento: OnBlur

E fazer um código só quando passar na Placa com o TAB:
Código: [Selecionar]
/* Macro sc_lookup */

sc_lookup(plc,"
SELECT
VEIC_MOTORISTA,
VEIC_CENTRO,
VEIC_SERVICE
FROM
    tb_veiculo
WHERE
    VEIC_ID = {COMB_VEICULO}
");

/* Erro no lookup */
if (FALSE === {plc}) {
sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({plc})) { /* EOF */
sc_error_message("Placa não CADASTRADA!<BR>"); // Caso não quiser criticar o erro
                                                // coloque // no inicio da linha.
}
else {

/* Inclua aqui sua rotina de processamento */
{COMB_MOTORISTA} = {plc[0][0]};
        {COMB_CENTRO} = {plc[0][1]};
        {COMB_SERVICE} = {plc[0][2]};
}

Tente assim e veja se não resolve.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

jcrlocacao

  • Novato
  • *
  • Mensagens: 12
  • Samuel Valentim
Re:Ajax Onchange, Não funciona corretamente, ora funciona ora não funciona
« Responder #4 Online: Agosto 31, 2015, 04:18:52 pm »
Jailton, funciona do mesmo jeito sendo que só o campo motorista não funciona, e ora ele pega ora não pega, e não tem jeito de ele funciona direito, e já verifiquei todos os lookups e selects estão tudo certinho, só este campo ora puxa ora não puxa mesmo se tratando de uma mesma linha de resultado
« Última modificação: Agosto 31, 2015, 04:27:56 pm por jcrlocacao »
Samuel Valentim
Soluções em Informática

Haroldo

  • Expert
  • *****
  • Mensagens: 6262
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Ajax Onchange, Não funciona corretamente, ora funciona ora não funciona
« Responder #5 Online: Agosto 31, 2015, 04:58:30 pm »
O que vc quer dizer que o retorno dos selects estão ok, mas o campo motorista ao atribuir o valor não é exibido?

Isso ocorre quando há erro de javascript, as vezes um sc_field_display num campo com nome errado....



jcrlocacao

  • Novato
  • *
  • Mensagens: 12
  • Samuel Valentim
Re:Ajax Onchange, Não funciona corretamente, ora funciona ora não funciona
« Responder #6 Online: Setembro 01, 2015, 08:55:17 am »
O que vc quer dizer que o retorno dos selects estão ok, mas o campo motorista ao atribuir o valor não é exibido?

Isso ocorre quando há erro de javascript, as vezes um sc_field_display num campo com nome errado....

Mas Haroldo, as vezes funciona, agora fica instável as vezes puxa tudo certinho e as vezes não, e o problema não é no banco os valores todos são true os selects funcionam direitinho, pensi na complicação
Samuel Valentim
Soluções em Informática

Kleyber

  • Expert
  • *****
  • Mensagens: 2232
    • Email
Re:Ajax Onchange, Não funciona corretamente, ora funciona ora não funciona
« Responder #7 Online: Setembro 01, 2015, 10:54:08 am »
Samuel bom dia,

Você tem alguma variável local ou global que seja tipo [COMB_MOTORISTA] ou $COMB_MOTORISTA?
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net