Ir para conteúdo
Fórum Script Brasil
  • 0

Como funciona o Ajax para input text e button?


loterixbr

Pergunta

Situação: Quero consultar um registro no meu banco de dados a partir de um valor digitado num campo input text ou do clique nos botões Anterior e Próximo. Quando digito o valor no campo input text tá funcionando certinho, mas quando clico nos botões Anterior e Próximo, não estou conseguindo atualizar o campo input e submeter a consulta ao meu banco de dados. O evento onclick adicionado aos botões Anterior e Próximo simplesmente não funcionam, com isto, não consigo chamar a função de atualização do valor do input text. Acredito que o problema deva estar relacionado ao uso / requisição Ajax.

Meu código HTML (está fora da área de resultado tratada na função getDados)

<table class="bordasimples" align="right">
	<tr><td><br>&nbsp;
		<input type="text" name="txtconcurso" id="txtconcurso" size="1">&nbsp; 
		<input type="button" name="btnBuscar" value="Busca" onclick="getDados();">&nbsp;
		<input type="button" name="btnBuscar1" id="btnBuscar1" value="Anterior">&nbsp; 
		<input type="button" name="btnBuscar2" id="btnBuscar2" value="Próximo">
		&nbsp;&nbsp;
		</td></tr>
</table>

Minha função getDados - Ajax (não consigo executar as funções pegaConcursoMenos e pegaConcursoMais de jeito nenhum)

/**
  * Função para criar um objeto XMLHTTPRequest
  */
function CriaRequest() {
    try{
        request = new XMLHttpRequest();        
    }catch (IEAtual){        
        try{
            request = new ActiveXObject("Msxml2.XMLHTTP");       
        }catch(IEAntigo){
            try{
                request = new ActiveXObject("Microsoft.XMLHTTP");          
            }catch(falha){
                request = false;
            }
        }
    }
     
    if (!request) 
        alert("Seu Navegador não suporta Ajax!");
    else
        return request;
}
 
/**
 * Função para enviar os dados
 */
function getDados() { 

	// Declaração de Variáveis
    var concurso   = document.getElementById("txtconcurso").value;
    var result = document.getElementById("tbresultado");
	
    var xmlreq = CriaRequest();
     
    // Exibi a imagem de progresso
    // result.innerHTML = '<img src="gifanimacao.gif">';
     
    // Iniciar uma requisição
    xmlreq.open("GET", "ltx_consultor_ltm.php?txtconcurso=" + concurso, true);
     
    // Atribui uma função para ser executada sempre que houver uma mudança de ado
    xmlreq.onreadystatechange = function(){
         
        // Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
        if (xmlreq.readyState == 4) {
             
            // Verifica se o arquivo foi encontrado com sucesso
            if (xmlreq.status == 200) {
                result.innerHTML = xmlreq.responseText;
            }else{
                result.innerHTML = "Erro: " + xmlreq.statusText;
            }
        }
    };
    xmlreq.send(null);
}
	
function pegaConcursoMenos()  
	{  
		var concurso = document.getElementById("numconcurso").value;  			
		concurso--;
		document.getElementById("numconcurso").value = concurso;	
		alert("Passei aqui na pegaConcursoMenos "+concurso);
	}	

function pegaConcursoMais()  
	{  
		var concurso = document.getElementById("numconcurso").value;  			
		concurso++;
		document.getElementById("numconcurso").value = concurso;	
		alert("Passei aqui na pegaConcursoMais"+concurso);
	}

Acredito que o problema não está no PHP, que quando apresenta a página inicial já traz o registro do banco de dados que me interessa corretamente. O que quero agora é permitir que o usuário clique no botão Anterior para ir para o registro anterior e no botão Próximo para ir para o próximo registro. Não consigo implementar isto! Quando o usuário preenche o campo input e clica no botão Buscar funciona direitinho. Resumindo: A partir do registro previamente mostrado pelo sistema, quero permitir ao usuário ir para o registro anterior, próximo ou direto para aquele que ele digitar no input text. Ah, sou iniciante em PHP, Javascript, Ajax, Html e estou aprendendo "na unha"!    

Nos meus códigos postados não há nenhuma chamada às funções pegaConcursoMenos e pegaConcursoMais simplesmente porque em todos os locais onde tentei chamá-las não funcionou. Inicialmente acreditei que elas devessem ser chamadas no evento onclick do respectivo botão do código html, mas não funcionou.

Editado por loterixbr
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...