Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jmlavoier

[Resolvido] query do PHP + AJAX

Recommended Posts

Olá boa tarde,

Estou fazendo um sistema em PHP + AJAX c/ DB Postgre, só que não é Orientação Objeto.

A minha dúvida é a seguinte: Ao iniciar uma QUERY com o comando de Inclusão ou Atualização dos dados, pelo que eu percebi, enquanto o comando SQL é execultado pelo banco o PHP não aguarda o sucesso da QUERY e já execulta as outras FUNÇÕES. Estou relatando esse fato, pois após as linhas da QUERY de ATUALIZAÇÃO e INCLUSÃO estou executando um SELECT para visualizar os dados, e não esta mostrando os dados atualizados na tela; Mas se eu for por fora no pgAdmin eu consigo ver que a INCLUSÃO ou ATUALIZAÇÃO foram feitas; Estou resolvendo isso na base do REFRESH, pois quando atualizo a tela ele busca novamente na DB e mostra corretamente.

 

Alguem pode me dizer se existe alguma forma de fazer a QUERY aguardar o sucesso da ATUALIZAÇÃO dos dados para prosseguir ?

 

Espero que dê para entender mina pergunta, e meu problema.

Estou no Aguardo de uma resposta. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera o problema foi resolvido.

O problema não estava com o Script PHP, até mesmo porque a QUERY do PHP aguarda um retorno para continuar.

O problema era com o .open do JavaScript que estava como asincrono. Um exemplo simplificado do codigo:

O parametro que indica se é asincrono está como true.

function Inserir_na_grid(url){
        url = "Inserir_Item.php?item="item;
	objeto = null;
	if (window.XMLHttpRequest){
		objeto = new window.XMLHttpRequest();
		objeto.onreadystatechange = insere_item;
		objeto.open ("GET",url,true);
		objeto.send(null);
	}
}

function Mostra_Item() { ..... }

Assim ele executa os comandos da pagina Inserir separadamente e não aguarda a finalização do processo para continuar. Com isso ele executa a function Mostra_Item antes de Terminar de Inserir..

 

A solução foi mudar o parametro para False.

 

Ta ae a solução e explicação. Até mesmo porque se alguem tiver estudando AJAX pode dar uma olhada no funcionamento. E se tiver com o mesmo problema tá resolvido. Vlw teh mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.