Update com Ajax

6 respostas
alysoncredip

Galera, sou iniciante e estou com uma duvida na utilização de Ajax!

Tenho uma jsp chamada "consulta" que faz uma consulta no bd e preenche uma tabela. Nesta tabela na frente de cada registro tem um botão que deve ser utilizado para mudar o status de um campo do bd (Quero fazer esse processo de alteração de status (SIM/NÃO) com ajax.).

Desta forma criei a função javaScript, que chama outra jsp chamada ajaxConfere, essa pagina está funcionando corretamente, ela somente recebe um ID e faz o update no id selecionado. Até ai tranquilo.

Porem, quando clico no botão (evento onClick) ele não está chamando a função do Ajax. Segue abaixo o código da pagina consulta para melhor entendimento:

Função java Script:
<script type="text/javascript">

function Confere(id){
	
	if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
  		xmlhttp=new XMLHttpRequest();
  	}
	else {// code for IE6, IE5
  		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  	}
	xmlhttp.onreadystatechange=function(){
  		if (xmlhttp.readyState==4 && xmlhttp.status==200)  {
    		document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    	}
 	} 
	alert(id);
	
	xmlhttp.open("GET","ajaxConfere.jsp?id="+id+"",true);
	xmlhttp.send();
}
</script>
Tabela com o botão que chama a função Confere:
while (rs.next()){
	SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
	Date agora = rs.getDate ( "data");
	
	NumberFormat nf = NumberFormat.getCurrencyInstance();
	String valorFormatado = nf.format(rs.getDouble("saldo"));
	
	out.println("<tr>");	
	
	  out.println("<td bgcolor='#D9D9F3'><center>" + rs.getString("num_conta") + "</center></td>");
	  out.println("<td bgcolor='#D9D9F3'>" + rs.getString("desc_conta") + "</td>");
	  out.println("<td bgcolor='#D9D9F3'><center>" + rs.getString("desc_pac") + "</center></td>");
	  out.println("<td bgcolor='#D9D9F3'>" + rs.getString("desc_usuario") + "</td>");
	  out.println("<td bgcolor='#D9D9F3'>" + (valorFormatado) + "</td>");
	  out.println("<td bgcolor='#D9D9F3'><center>"+sdf.format(agora)+"</center></td>");
	  out.println("<td bgcolor='#D9D9F3'>" + rs.getString("conferido") + "</td>");
	  out.println("<td > <button type=button onclick=Confere("+rs.getString("id")+")> OK </button> </td>");
	  
	out.println("</tr>");
}

Na ultima linha tem o botão que chama a função, ai que está o problema! Ele não funciona dentro da tabela. Se por acaso eu tiro esse botão do loop (ai vai mostrar só um botão) e coloco fora passando um Id padrão funciona perfeitamente, no caso fica desta forma:

out.println("<td > <button type=button onclick=Confere(2)> OK </button> </td>");

Chamo a função passando um código padrão pra testar, ai funciona.

O problema é que preciso disso na tabela, cada botao tem que ter o ID do registro selecionado. Percebi que nem chama a função, pq coloquei uma alerta dentro dela e não aparece.

Alguem tem uma LUZ???

Abraços...Desde já agradeço....

6 Respostas

alysoncredip

Help!!

alysoncredip

fiz a seguinte alteração no código: antes de chamar a função no evento onClick coloquei “javascript:”

Mas mesmo assim não resolveu…

alysoncredip

S.O.S - alguem para ajudar

Takeshi91

se eu entedesse de javascript eu ajudaria. Mas todo JS que eu uso vem com a framework.

E

tente ir no console do firefox e veja que erro está acontecendo

Takeshi91

Use a ferramenta do desenvolvedor do Google Chrome

Criado 24 de março de 2011
Ultima resposta 1 de abr. de 2011
Respostas 6
Participantes 3