Foros del Web » Programando para Internet » Javascript »

urgente problemas con llamarasincrono con modificaciones

Estas en el tema de urgente problemas con llamarasincrono con modificaciones en el foro de Javascript en Foros del Web. Hola soy nuevo aca y espero poder explicarme lo mejor posible. Mi problema es que tengo un jsp que se abre en un div de ...
  #1 (permalink)  
Antiguo 29/01/2009, 13:38
 
Fecha de Ingreso: enero-2009
Mensajes: 14
Antigüedad: 15 años, 10 meses
Puntos: 1
Exclamación urgente problemas con llamarasincrono con modificaciones

Hola soy nuevo aca y espero poder explicarme lo mejor posible.

Mi problema es que tengo un jsp que se abre en un div de otra pagina, cuando se carga la pagina en ese div traigo los datos de una bd y los muestro, al traer estos datos el se sigue cargando en el mismo div, como ya tengo los datos puedo modificarlos y volverlos a enviar y al hacer esto el vuelve y se carga en el div y hasta ahi todo bien, cuando vuelvo y traigo los datos de la bd me doy cuenta que no han sido modificados, lo cual es mentira, y descubri que el problema era que no me estaba trayendo los datos de la bd sino que me mostraba los que ya habia cargado y este es mi problema, es decir que ni siquiera entra a mi Controlador de Servlet (ControladorServlet) ,antes de hacer que la pagina se cargara en el div el me hacia todo el proceso bien por eso creo que tengo es un inconveniente con al hacer que se cargue en este div, bueno eso creo realmente no lo se.

aclaro que todo lo demas me lo hace bien, el me modifica, me ingresa y me consulta, aclarando que son jsp diferentes los que me hacen esto y el problema lo tengo es al cargar los datos en modificar ya que lo que hago es traer los datos como ya lo explique.

para cargar los datos en el div uso el llamarasincrono con una pequeña modificacion para que se siga cargando la pagina al enviar el formulario este es el codigo de ese llamar asincrono.

Código:
// Documento JavaScript
// Esta funci�n cargar� las paginas
function llamarasincronoInterno(url,id_contenedor,formulario){
    
    
var pagina_requerida = false
if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest()
} else if (window.ActiveXObject){ // pero si es IE
try {
pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){ // en caso que sea una versi�n antigua
try{
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
pagina_requerida.onreadystatechange=function(){ // funci�n de respuesta
cargarpagina(pagina_requerida, id_contenedor)
}
var datos='?'+document.getElementById(formulario).elements[0].name+'='+document.getElementById(formulario).elements[0].value;

    for(var i = 1; i < document.getElementById(formulario).elements.length; i++) {


datos = datos+'&'+document.getElementById(formulario).elements[i].name

datos = datos+'='+document.getElementById(formulario).elements[i].value
    }

pagina_requerida.open('GET',url+datos,true) // asignamos los m�todos open y send
pagina_requerida.send(null)
}
// todo es correcto y ha llegado el momento de poner la informaci�n requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, id_contenedor){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText
}
function validar(formulario){
   

    for(var i = 1; i < document.getElementById(formulario).elements.length; i++) {


if (document.getElementById(formulario).elements[i].value==null||(/^\s+$/.test(document.getElementById(formulario).elements[i].value))||document.getElementById(formulario).elements[i].value.length==0){
  
    return false;
}
   
}

return true;
}



function comprobar(formu){

for(var i = 1; i < document.getElementById(formu).elements.length; i++) {	
    if(document.getElementById(formu).elements[i].name == document.form1.boton1){
		
		if(document.form1.boton1.value == document.getElementById(formu).elements[i].value)
		{
			return true;
		}
		else
                {
                    return false;
                }
	}
	else
	{
            return false;
        }
     }
}


function llamarasincronoInterno2(url,id_contenedor,formulario){
    
    
var pagina_requerida = false
if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest()
} else if (window.ActiveXObject){ // pero si es IE
try {
pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){ // en caso que sea una versi?n antigua
try{
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
pagina_requerida.onreadystatechange=function(){ // funci?n de respuesta
cargarpagina(pagina_requerida, id_contenedor)
}
var datos='?'+document.getElementById(formulario).elements[0].name+'='+document.getElementById(formulario).elements[0].value;

    
		
		if(comprobar(formulario)){
			datos = datos+'&'+document.getElementById(formulario).elements[i].name
			datos = datos+'='+document.getElementById(formulario).elements[i].value
		}
		else
		{
        		datos = datos+'&'+document.getElementById(formulario).elements[i].name
			datos = datos+'='+document.getElementById(formulario).elements[i].value
		}


    

pagina_requerida.open('GET',url+datos,true) // asignamos los m?todos open y send
pagina_requerida.send(null)
}
// todo es correcto y ha llegado el momento de poner la informaci?n requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, id_contenedor){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText
}

espero haber sido claro

Gracias.
  #2 (permalink)  
Antiguo 30/01/2009, 09:43
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Respuesta: urgente problemas con llamarasincrono con modificaciones

Repetido en AJAX
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:46.