Estoy empezando con Ajax, y tengo un problema que no sé cómo solucionar...
Tengo una página .jsp con un formulario que envío automáticamente cada x segundos, mediante javascript con las acciones setTimeout y document.formu.submit().
El caso es q este formulario me tiene q ir devolviendo una respuesta que la voy sacando por el navegador, en plan: cada vez que envio el form se va escribiendo la respuesta en una linea (una detrás de otra).
Para hacer esto he recurrido a Ajax con las funciones:
Código HTML:
function creaAjax(){ var objetoAjax=false; try { /*Para navegadores distintos a internet explorer*/ objetoAjax = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { /*Para explorer*/ objetoAjax = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { objetoAjax = false; } } if (!objetoAjax && typeof XMLHttpRequest!='undefined') { objetoAjax = new XMLHttpRequest(); } return objetoAjax; } function RecuperaDato (url,capa,valores) { var ajax=creaAjax(); var salida = document.getElementById(capa); /*Creamos y ejecutamos la instancia si el metodo elegido es POST*/ ajax.open ("POST", url, true); ajax.onreadystatechange = function() { if (ajax.readyState==1) { salida.innerHTML="Cargando......."; } else if (ajax.readyState==4){ if(ajax.status==200) { salida.innerHTML=ajax.responseText; } else if(ajax.status==404) { salida.innerHTML = "La direccion existe"; } else { salida.innerHTML = "Error: "+ ajax.status; } } } ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); ajax.send(valores); }
Código HTML:
<form name="oculto" method="post" onsubmit="RecuperaDato('acepta.jsp','salida','campo1='+document.getElementById('campo1').value+'&campo2='+document.getElementById('campo2').value); return false;" action="#"> <TABLE> <TR> <TD ALIGN="left"><INPUT TYPE="hidden" NAME="campo1" ID="campo1" value="primero"></TD> </TR> <TR> <TD ALIGN="left"><INPUT TYPE="hidden" NAME="campo2" ID="campo2" value="segundo"></TD> </TR> <TR> </TABLE> </form> <div id="salida">Valor 1: </div>
El problema es que me da un error java.lang.NullPointerException en el momento en que se ejecuta document.formu.submit() y ni siquiera me llega a entrar en recuperaDato, parece que el error lo da ya en el formulario (no sé si en el onsubmit o en el action...)
No sé si me habré explicado mu bien... es q todos los ejemplos que he visto eran apretando el botón submit, pero en mi caso quiero hacerlo enviándolo automáticamente.
¿Alguien que tenga algo de idea? Graciassssss