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>
<input type="text" name="txtconcurso" id="txtconcurso" size="1">
<input type="button" name="btnBuscar" value="Busca" onclick="getDados();">
<input type="button" name="btnBuscar1" id="btnBuscar1" value="Anterior">
<input type="button" name="btnBuscar2" id="btnBuscar2" value="Próximo">
</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.