Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/09/2009, 13:10
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Reemplazar input dinámicamente

Hola

Veamos, prueba con esto

Código javascript:
Ver original
  1. <script type="text/javascript">
  2.  var ns4 = (document.layers)? true:false
  3. var ie4 = (document.all)? true:false
  4. var ns6 = (document.getElementById)? true:false
  5.  
  6. function captura_objeto(idnombre) {
  7.     if (ns6)
  8.     {
  9.     return document.getElementById(idnombre);
  10.     }
  11.     else if (ie4)
  12.     {
  13.     return document.all[idnombre];
  14.     }
  15.     else if (ns4)
  16.     {
  17.     return document.layers[idnombre];
  18.     }
  19.     else
  20.     {
  21.     return null;
  22.     }
  23. }
  24.  
  25.  
  26. function creaAjax(){
  27.     var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  28.     var ajax = false;
  29.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  30.         try{
  31.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  32.         }
  33.         catch(e) {
  34.             ajax = false;
  35.         }
  36.     }
  37.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  38.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  39.     }
  40.     return ajax;
  41. }
  42.  
  43.  
  44. function MuestraDatos() {
  45. var url = "2.php"
  46. var ajax=creaAjax();
  47. var ditancia = captura_objeto("num1").options[captura_objeto("num1").selectedIndex].value);
  48. var ritmo = captura_objeto("num2").value;
  49. var tiempo = captura_objeto("num3").value;
  50. var objetosel1 = captura_objeto("num2");
  51. var objetosel2 = captura_objeto("num3");
  52. ajax.open('POST',url,true);
  53. ajax.onreadystatechange = function() {
  54.  
  55.         if (ajax==null){
  56.         alert ("Tu navegador web no soporta AJAX!");
  57.         return;
  58.     }
  59.  
  60.         if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {
  61.                                         objetosel1.value= "";
  62.             }
  63.  
  64.                 else if (ajax.readyState==4){
  65.                     if(ajax.status==200){          
  66.             var valores = unescape(ajax.responseText); 
  67.             objetosel1.value = valores.split(",")[0]; // Ritmo
  68.             objetosel2.value = valores.split(",")[1]; // Tiempo
  69.  
  70.                    }
  71.                     else if (ajax.status==404)
  72.                                              {
  73.  
  74.                                     objetosel1.value = "La dirección no existe";
  75.                                              }
  76.                                      else
  77.                                              {
  78.                                     objetosel1.value = "Se ha producido un error";
  79.                                              }
  80.                                     }
  81.                   }
  82.    
  83.     ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  84.             ajax.setRequestHeader('Content-Length', ritmo.length); 
  85.     ajax.send("distancia="+distancia+"&ritmo=+ritmo+"&tiempo="+tiempo);
  86.             return
  87. }
  88. </script>

Has de hacer varios cambios
+ En vez de usar un submit usas un botón. Y con onclick llamas a la función MuestraDatos()
+ A los campos del form añadeles ids
+ Cambia si es necesario los nombres de las variables para adaptarlas a lo que ya tienes
+ En la respuesta tendrá que haber dos datos separados por comas; por ejemplo quiere saber el tiempo que tardará, así que manda 3:45, pues en la respuesta ha de ser 3:45,1:40:30

Alguna duda, pregunta

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />