Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Tesla

AJAX - Comportamento esquisito.

Recommended Posts

Tesla

if (a!="" && a!=null && b!="" && b!=null && d!="" && d!=null && e!="" && e!=null && f!="" && f!=null){
     
    Http.open('POST',url);
    Http.onreadystatechange=mostra_info;
    Http.send(null);

    document.form1.assunto.value="";
    document.form1.interloc.value="";
    document.form1.empresa.value="";
    document.form1.local.value="";
    document.form1.data.value="";
    document.form1.hora.value="";
    document.form1.obs.value="";

    document.form1.assunto.focus();

    agen_tab_direita();


    } else {
      document.getElementById('txtHint').innerHTML ="<font color=red>Campos obrigatórios por preencher!</font>";
      setTimeout("preencher_agen();",2500);
    }

Esta a parte do código que está a ter comportamentos estranhos.

Da forma em que a vêem ela não actualizada a base de dados nem corre o que está dentro do if como deveria ser. No entanto, se colocar alert's em pontos chave, ela já se comporta como deveria (em baixo).

if (a!="" && a!=null && b!="" && b!=null && d!="" && d!=null && e!="" && e!=null && f!="" && f!=null){
     alert("0");
    Http.open('POST',url);
    Http.onreadystatechange=mostra_info;
    Http.send(null);
    alert("1);
    document.form1.assunto.value="";
    document.form1.interloc.value="";
    document.form1.empresa.value="";
    document.form1.local.value="";
    document.form1.data.value="";
    document.form1.hora.value="";
    document.form1.obs.value="";
     alert("2");
    document.form1.assunto.focus();
     alert("3");
    agen_tab_direita();


    } else {
      document.getElementById('txtHint').innerHTML ="<font color=red>Campos obrigatórios por preencher!</font>";
      setTimeout("preencher_agen();",2500);
    }

Algum de vocês me consegue explicar o porquê de isto acontecer?

Abraço  :P


Assinatura editada pelo staff, por favor consulte as regras.

Share this post


Link to post
Share on other sites
softklin

O próprio Geshi dá-te a razão do que está mal: falta-te fechar aspas no teu segundo código, linha 6

alert("1);


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
Tesla

O próprio Geshi dá-te a razão do que está mal: falta-te fechar aspas no teu segundo código, linha 6

alert("1);

Não é por aí. lol Eu coloquei esses alert's só para ilustrar. Não o codigo que de facto corre.

O que quero dizer, o primeiro código não corre, mas o seguinte já! Ou seja... se tiver umas pausas a meio tudo corre bem, caso contrário não escreve nada na BD.


Assinatura editada pelo staff, por favor consulte as regras.

Share this post


Link to post
Share on other sites
Tesla

Para não causar dúvidas, o código com os alerts:

if (a!="" && a!=null && b!="" && b!=null && d!="" && d!=null && e!="" && e!=null && f!="" && f!=null){
    alert("Entrei no If");
    Http.open('POST',url);
    Http.onreadystatechange=mostra_info;
    Http.send(null);
    alert("Vou limpar os campos");
    document.form1.assunto.value="";
    document.form1.interloc.value="";
    document.form1.empresa.value="";
    document.form1.local.value="";
    document.form1.data.value="";
    document.form1.hora.value="";
    document.form1.obs.value="";
    alert("Vou seleccionar Assunto");
    document.form1.assunto.focus();
    alert("Vou actualizar o lado direito");
    agen_tab_direita();



    } else {
      document.getElementById('txtHint').innerHTML ="<font color=red>Campos obrigatórios por preencher!</font>";
      setTimeout("preencher_agen();",2500);
    }

Código da função mostra_info();

function mostra_info() {
        if (Http.readyState==4) {
                var response = Http.responseText;
                document.getElementById('txtHint').innerHTML = response;
        }
}

:P


Assinatura editada pelo staff, por favor consulte as regras.

Share this post


Link to post
Share on other sites
softklin

Parece tudo certo... Já experimentaste ver qual o ready state na função mostra_info(), tipo alert(Http.readystate) ? Com a versão dos ifs e com a versão normal?

Sinceramente, não vejo qualquer outro problema :\ Já agora, isso acontece em qualquer browser? já viste alguma indicação da consola de erros do Firefox?


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
Tesla

Vou experimentar noutro browser, porque o firefox não se queixa de nada.

E se correr manualmente o insere_agen.php não há erros. Não sei o que possa ser... mas adiante... venha de lá o IE.

EDIT: No IE faz a inserção dos dados na BD, mas depois não corre as acções de seleccionar o campo assunto e a tabela da direita. :\

EDIT2: Anterioremente estava a trabalhar em Windows 7 64bits, e agora estou em XP 32bits. Agora funciona! Em 64bits não!  🤔 Alguma razão em especial?


Assinatura editada pelo staff, por favor consulte as regras.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.