En un tabla que muestra la siguiente estructura de información. es un (ejemeplo)
cod / nombre / cantidad / ver
1 bla bla 3 boton mostrar
2 ble ble 2 boton mostrar
al hacer click en boton mostrar hace una llamada de funcion en ajax y me muestra el código de operación y me refresca otra grilla(que es una tabla dinamica table,tr,td)
a continuación pongo la función al hacer click en el "botón mostrar"
Código:
esta función llama a esta otrafunction load_operation_id(id_a){ alert("El Codigo de Operacion seleccionado es el: "+id_a); loadValueforOperation("transactional__recovery_data/frm_recover_information_from_operation.php?id_a="+id_a,"datos_a"); }
Código:
function loadValueforOperation(url, contenedor){ var pag = false; if(window.XMLHttpRequest){ pag = new XMLHttpRequest(); }else{ if(window.ActiveXObject){ // pero si es IE try{ pag = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ // en caso que sea una versión antigua try{ pag = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){} } }else{ return false; } } pag.onreadystatechange=function(){ // función de respuesta loadURLforOperation(pag, contenedor); setTimeout("Show_Data_For_Operation();",1); setTimeout("load_users_information_from_operation_iden();",1); //setTimeout("load_machine_replacements_information_from_operation_iden()",8);//Arreglar Sincronia } pag.open('GET', url, true) // asignamos los métodos open y send pag.send(null) }
esta llama a 2 funciones, aqui van:
Código:
la primera no tiene ningun problema y recupera la informacion SIEMPRE. pero la q refresca la grilla, la segunda funcion en promedio al decimo intento falla y no carga la grilla, solo recupera el valor ,pero no referescafunction Show_Data_For_Operation(){ var datos=document.getElementById("datos_a").value; if(datos!=""){ datos=datos.split(","); document.getElementById("id_a").value=datos[0]; document.getElementById("detailed_reparation_id").value=datos[1]; document.getElementById("detailed_reparation_desc").value=datos[2]; document.getElementById("detailed_reparation_numpers").value=datos[3]; document.getElementById("detailed_reparation_id_b").value=datos[1]; document.getElementById("detailed_reparation_desc_b").value=datos[2]; document.getElementById("detailed_reparation_numpers_b").value=datos[3]; } else{ //setTimeout("mostrar_DelSoftware()",1); } } function load_users_information_from_operation_iden(){ //alert(); dat1=document.getElementById("detailed_reparation_id").value; accion_a="transactional__insert_data/system_frm_load_datagrid_from_users_operation_activity.php?detailed_reparation_id=" + dat1; //loadPag(accion_a,"datagrid__detailed_users_for_operation"); loadPag_b(accion_a,"datagrid__detailed_users_for_operation"); }
el problema debe estar en la segunda funcion que llama a esta otra loadpag_b()
Código:
function loadPag_b(urlbc, contenedorbc){ var pagbc = false; if(window.XMLHttpRequest){ pagbc = new XMLHttpRequest(); }else{ if(window.ActiveXObject){ // pero si es IE try{ pagbc = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ // en caso que sea una versión antigua try{ pagbc = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){} } }else{ return false; } } pagbc.onreadystatechange=function(){ // función de respuesta loadURL_bc(pagbc, contenedorbc); //setTimeout("load_machine_replacements_information_from_operation_iden()",3); } pagbc.open('GET', urlbc, true) // asignamos los métodos open y send pagbc.send(null) } //OTRO function loadURL_bc(pagina_requeridabc, id_contenedorbc){ if(pagina_requeridabc.readyState == 4 && (pagina_requeridabc.status==200 || window.location.href.indexOf("http")==-1)){ document.getElementById(id_contenedorbc).innerHTML=pagina_requeridabc.responseText; } }
, he probado con settimeout y sin el, pero me da la impresion de q al llamar nuevamente al objeto de ajax se lagea u algo parecido, ojala me puedan ayudar.... es muy importante y no me gusta que la aplicacion presente problema, insisto nunca falla a la primera ni la segunda, es como al decimo intento q empiezo a probar (recuperar los ID) es q falla y me recupera solo el id y no refresca la grilla
espero me hayan entendido, desde ya muchas gracias, saludos amigos