Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/01/2015, 10:14
axelb
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: Select que agrega datos a varios campos de texto

si, el id del primer div tiene el nombre de div_combo1

con respecto a lo demas, queda asi:
Código Javascript:
Ver original
  1. //FUNCION AJAX PARA LLAMAR LOS DATOS DEL SEGUNDO COMBO
  2. function getCombo2(id_combo1){ //variable que espera la funcion
  3.     var xmlhttp;
  4.     if (window.XMLHttpRequest){// codigo for IE7+, Firefox, Chrome, Opera, Safari
  5.         xmlhttp=new XMLHttpRequest();
  6.     }else{// codigo for IE6, IE5
  7.         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  8.     }
  9.     //funcion que se llama cada vez que cambia la propiedad readyState
  10.     xmlhttp.onreadystatechange=function(){
  11.         //readyState 4: peticion finalizada y respuesta lista
  12.         //status 200: OK
  13.         if (xmlhttp.readyState===4 && xmlhttp.status===200){
  14.             //Pasar la respuesta html a div_combo2
  15.             var datos = JSON.parse(xmlhttp.responseText), i = 1, caja;
  16.  
  17.             for (var prop in datos){
  18.                 caja = document.createElement("input");
  19.                 caja.type = "text";
  20.                 caja.name = prop;
  21.                 caja.value = datos[prop];
  22.                 document.getElementById("div_combo" + i).innerHTML = caja;
  23.                 i++;
  24.             }
  25.             /*document.getElementById("div_combo1").innerHTML=xmlhttp.responseText;
  26.             document.getElementById("div_combo2").innerHTML=xmlhttp.responseText;
  27.             document.getElementById("div_combo3").innerHTML=xmlhttp.responseText;*/
  28.         }
  29.     };
  30.     /* open(metodo, url, asincronico)
  31.     * metodo: post o get
  32.     * url: localizacion del archivo en el servidor
  33.     * asincronico: comunicacion asincronica true o false.*/
  34.     xmlhttp.open("POST","get_combo2.php",true);//establece el header para la respuesta
  35.     xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");//enviamos las variables al archivo get_combo2.php
  36.     xmlhttp.send("id_combo1=" + id_combo1);
  37. }

y el archivo php get_combo2 quedo asi:
Código PHP:
Ver original
  1. $conectar=mysqli_connect("$hosting","$usuario","$pass");
  2. mysqli_select_db($conectar,"$base");
  3. //recibimos la variable enviada desde ajax
  4. $id_combo1=$_POST["id_combo1"];
  5. //hacemos el query para obtener los datos segun la variable obtenida
  6. $sql="select chofer,patente2,tara from tickets where patente='$id_combo1'";
  7. //ejecutamos el query
  8. $query= mysqli_query($conectar, $sql);
  9. $a=mysqli_fetch_row($query);
  10. mysqli_close($conectar);
  11. echo json_encode(array('chofer' => $a[0], 'tara' => $a[2], 'chapa2' => $a[1]));

hay un par de cositas que no termino de entender, y si pudieras explcarmelas seria genial!

1) JSON.parse(xmlhttp.responseText) -> en la definicion de las variables
2) var prop in datos -> en el for
3) caja.name = prop; -> el nombre del textbox es "prop"??
4) caja.value = datos[prop]; -> que valor tomaria el texbox??

Muchas gracias Alexis88!!