Ir para conteúdo

Arquivado

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

FabianoSouza

Duas ou mais requisições no mesmo AJAX

Recommended Posts

Enquanto o usuário preenche o form, quero fazer uma verificação no banco para saber se já existe o item que ele está tentando gravar.

Para essa finalidade fiz este código bem básico.

	var chekTitulo = document.getElementById("titulo").value;
	var obj = createXMLHTTP(); 
	obj.open("post", "minhapagina.asp", true); 
	obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	obj.onreadystatechange=function(){
	if (obj.readyState == 4){ 

var string_json = (obj.responseText);
var lista = eval(string_json);

if (lista[0].item != chekTitulo)
{
alert("Não existe")

return
}
else
{
	alert("Já existe")
}
	}
	}
	obj.send(encodeURI("checkItem="+chekTitulo));

Se o item não existir no banco, precisarei enviar os dados do form para serem gravados.
Para isso gostaria de usar o mesmo ajax. Como faço isso?

Pelo que andei olhado teria que fazer uma "fila" de processamento para executar a segunda operação (gravar os dados) depois que terminar a primeira (checagem do item).

 

Seria este o caminho?? Como adapto este código para fazer isso?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é possível.

Um ajax uma requisição, um retorno. É assim que funciona o protocolo HTTP.

 

Se você quer fazer outra requisição, ai tem que usar outro ajax.

Nesse caso, você pode colocar a outra chamada de ajax dentro da primeira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse teu caso em específico, eu faria a verificação:

 

-> existe no banco ?

-> Não. Insere

-> Sim. Nada

 

Do lado do servidor, na primeira chamada ajax. Não tem pq essa lógica de "existe ou não no banco" ficar do lado do cliente.

Logo, eu enviaria todo o form já na primeira vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que se usar a lógica

 

-> existe no banco ?
-> Não. Insere
-> Sim. Nada

 

o usuário terá seu esforço de preencher o form perdido. Além de não ter seu objetivo (que seria criar o registro) realizado.

 

A razão que me levou a deixar a lógica (se tem banco ou não) no cliente é para poder avisá-lo de que o item não poderá ser gravado por já existir registro com o mesmo título, dando a ele opção de escolher um título diferente.

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.