Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Pagina Principal de Compras</title> <script> function nuevoAjax() { 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 procesar_formulario(url, formid) { var Formulario=document.getElementById(formid); var longitudFormulario=Formulario.elements.length; var cadenaFormulario=""; var sepCampos; sepCampos = ""; for(var i=0; i <= Formulario.elements.length-1;i++) { cadenaFormulario+= sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value); sepCampos="&"; } alert(cadenaFormulario); ajax=nuevoAjax(); //usamos el metodo Post - Archivo que realiza la actualizacion ajax.open("post","../../cgi-bin/grabmodest.sh",true); ajax.setRequestHeader('Content-Type', 'aplication/x-www-form-urlencoded; charset=ISO-8859-1'); ajax.send(cadenaFormulario); ajax.onreadystatechange=function(){ if(ajax.readyState==4 && (ajax.status == 200 || window.location.href.indexOf ("http") == -1 || location.reload() )) { document.getElementById(mensaje).innerHTML = ajax.responseText; } } } </script> </head> <body> <table width=725px border=1 cellspacing=0 cellpadding=2> <div id="mensaje"> <form id="form001"> <tr> <td>4428170</td> <td>PRENSA EMBR."LUK"BAJA 1.5 75-DU-UNO-FIO.</td> <td>Cajas</td> <td><input name="unicaj" type="text" value="5" size="5" maxlength="5"></td> <td>50</td> <td>50</td> <td> <select name="estante" id="estante" onChange="procesar_formulario('alerta.php','form001');"> <option value=0 selected>UBICACION</option> <option value=X41X>X41X</option> </select> </td> <td><!-- Si estado = 0 muestro imagen1 o estado = 1 muestro imagen2 --> <img src='img/imagen1.gif' alt='Sin Estanteria'> </td> <td><img src='img/camara.gif' border='0'></td> </tr> <input type="hidden" name="estado" value="0"> <!-- indica que no tiene estanteria por ende imagen es imagen1.gif --> <input type="hidden" name="codigo" value="4428170"> <input type="hidden" name="cantidad" value="000050"> <input type="hidden" name="tipo" value="NP"> <input type="hidden" name="numero" value="00002548"> <input type="hidden" name="local" value="09"> <input type="hidden" name="wrecep" value="1"> <input type="hidden" name="prefix" value="@queule:/indra/dat"> <input type="hidden" name="servidor" value="queule"> <input type="hidden" name="empre" value="I"> <input type="hidden" name="logname" value="gherrera"> </form> </div> <div id="mensaje"> <form id="form002"> <tr> <td>4428170</td> <td>PRENSA EMBR."LUK"BAJA 1.5 75-DU-UNO-FIO.</td> <td>Cajas</td> <td><input name="unicaj" type="text" value="5" size="5" maxlength="5"></td> <td>50</td> <td>50</td> <td> <select name="estante" id="estante" onChange="procesar_formulario('alerta.php','form002');"> <option value=0 selected>UBICACION</option> <option value=X41X>X41X</option> </select> </td> <td><!-- Si estado = 0 muestro imagen1 o estado = 1 muestro imagen2 --> <img src='img/imagen1.gif' alt='Sin Estanteria'> </td> <td><img src='img/camara.gif' border='0'></td> </tr> <input type="hidden" name="estado" value="0"> <!-- indica que no tiene estanteria por ende imagen es imagen1.gif --> <input type="hidden" name="codigo" value="4428170"> <input type="hidden" name="cantidad" value="000050"> <input type="hidden" name="tipo" value="NP"> <input type="hidden" name="numero" value="00002548"> <input type="hidden" name="local" value="09"> <input type="hidden" name="wrecep" value="1"> <input type="hidden" name="prefix" value="@queule:/indra/dat"> <input type="hidden" name="servidor" value="queule"> <input type="hidden" name="empre" value="I"> <input type="hidden" name="logname" value="gherrera"> </form> </div> <div id="mensaje"> <form id="form003"> <tr> <td>4428170</td> <td>PRENSA EMBR."LUK"BAJA 1.5 75-DU-UNO-FIO.</td> <td>Cajas</td> <td><input name="unicaj" type="text" value="5" size="5" maxlength="5"></td> <td>50</td> <td>50</td> <td> <select name="estante" id="estante" onChange="procesar_formulario('alerta.php','form003');"> <option value=0 selected>UBICACION</option> <option value=X41X>X41X</option> </select> </td> <td><!-- Si estado = 0 muestro imagen1 o estado = 1 muestro imagen2 --> <img src='img/imagen1.gif' alt='Sin Estanteria'> </td> <td><img src='img/camara.gif' border='0'></td> </tr> <input type="hidden" name="estado" value="0"> <!-- indica que no tiene estanteria por ende imagen es imagen1.gif --> <input type="hidden" name="codigo" value="4428170"> <input type="hidden" name="cantidad" value="000050"> <input type="hidden" name="tipo" value="NP"> <input type="hidden" name="numero" value="00002548"> <input type="hidden" name="local" value="09"> <input type="hidden" name="wrecep" value="1"> <input type="hidden" name="prefix" value="@queule:/indra/dat"> <input type="hidden" name="servidor" value="queule"> <input type="hidden" name="empre" value="I"> <input type="hidden" name="logname" value="gherrera"> </form> </div> </table> </body> </html>
Los datos son capturados correctamente alert(cadenaFormulario).
Los datos son enviados via CGI a programa que me realiza las actualizaciones.
(cambiando la imagen1 x la imagen2); pero al obtener el resultado del DIV aun me muestra la imagen1 a pesar que se actualizaron los datos correctamente.
Por esta razon agrege un location.reload() que me actualiza la pagina; pero no es lo que necesito porque el tiempo de actualizacion dependera de la cantidad de datos mostrados desde la pagina principal y si son 1000 los que debo mostrar el tiempo de recarga se elevara.
Tengo forma de mostrar solamente el DIV actuualizado, con la imagen correspondiente.
Espero darme a entender, de ante mano Gracias.