Ver Mensaje Individual
  #8 (permalink)  
Antiguo 29/06/2007, 06:48
zyon
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 2 meses
Puntos: 3
Re: es posible hacer esto con ajax

Que tal, mira practicamnete los ejemplos de PHP y AJAX te sirven para usarlos en JSP solo hay que saber adaptarlos, pero te pondre aqui un ejemplo y asi cualquier lo puede checar...Este ejemplo me devuelve un checKList de personas responsables con su clave...

Código HTML:
<script>
function objetoAjax(){//Con esta funcion se crea el objeto AJAX
        var xmlhttp=false;
        try {
               xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
               try {
                  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
               } catch (E) {
                       xmlhttp = false;
               }
        }
 
        if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
               xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
}

function creaLista(){// con esta función cargamos los valores de lista...<

  ajax=objetoAjax();// instanciamos el objeto ajax
  ajax.open("POST", "genera.jsp?tipo=responsables",true);
  //en mi caso genera.jsp es un jsp que genera y devuelve un XML valido
  //para asi poder usar un poco de DOM
  ajax.onreadystatechange=function() {
     if (ajax.readyState==4) {
	if(ajax.status==200){
	    alert('Responsables : '+ajax.responseText);	// con este alert puedes ver que te envia "genera.jsp"		  
 par=ajax.responseXML;           
	     var aux2=par.getElementsByTagName('responsable');//obtengo la cantidad de responsables..
		for(var n=0; n < aux2.length;n++){
								clave=aux2[n].getElementsByTagName('clave')[0].firstChild.nodeValue;
							nombre=aux2[n].getElementsByTagName('nombre')[0].firstChild.nodeValue;
								document.tuForm.resp[n+1]=new Option(nombre ,clave );//aqui voy asignando el nuevo valor al checkList
							}
							 
							 document.getElementById('cargar').innerHTML = ""; 
			            }
			          }else{//alert(ajax.readyState);
			          		document.getElementById('cargar').innerHTML = "Cargando ...";
			          }
		      	  }// fin de ajax.
  
  ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  ajax.send(null);
}  
</script>


<select name="resp" style="background:#C4D0DE;font-size:8pt;width:160px;">
<option value='no' selected>Selecciona Responsable</option>
</select><br>
<input type=button value='creaCheckList' onclick="creaLista();"/> 
y lo que coloque en genera.jsp es algo asi:

Código HTML:
<%String Tipo=(request.getParameter("tipo")==null)?"":request.getParameter("tipo");
        String xml="";
        String sp="\n";
if(Tipo.equals("responsables")){
    xml="<datos>"+sp;%>
    
<%--Extraigo el nombre de los Usuarios  --%>
    <sql:statement id="stmt1" conn="conn">
    <sql:query>
       select nombre, cve_empleado from empleados 
    </sql:query>
    <sql:resultSet id="respo">
            <%  xml=xml+"<responsable>"+sp;
		        xml=xml+"<clave>"+respo.getString(2)+"</clave>"+sp;
		        xml=xml+"<nombre>"+respo.getString(1)+"</nombre>"+sp;
		        xml=xml+"</responsable>"+sp;
            %>
        </sql:resultSet>
        </sql:statement>  
        
<%	xml=xml+"</datos>"+sp;
	out.print(xml);
    }// Fin de Responsables...
ya tendras tu que adaptar la consulta según a como lo tienes en tu jsp, recuerda, tiene que ser un jsp que devuelva un XML valido para AJAX, yo puse en las dos primeras lineas de ese jsp :

Código HTML:
<?xml version="1.0" encoding="UTF-8"?>
<%@ page contentType="text/xml; charset=UTF-8" %> 
en el alert que te puse dentro de la funcion al ejecutarse deveria pintarte algo como:

<?xml version="1.0" encoding="UTF-8" ?>
- <responsable>
<clave>100</clave>
<nombre>Josue</nombre>
</responsable>
- <responsable>
<clave>101</clave>
<nombre>y</nombre>
</responsable>
- <responsable>
<clave>102</clave>
<nombre>x</nombre>
</responsable>
etc etc....

trata de implementar el ejemplo que te di y si te funciona te sera facil hacer lo que quieres... Suerte!!!! ohala y te funcione!
__________________
Wow! No se que decir...

Última edición por zyon; 29/06/2007 a las 06:53