Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/02/2015, 16:50
Avatar de Alexhg42
Alexhg42
 
Fecha de Ingreso: febrero-2015
Mensajes: 33
Antigüedad: 9 años, 2 meses
Puntos: 2
Respuesta: Auto rellenar formulario con ajax.

Gracias por responder Alexis88.
Para quien tenga el mismo problema o quiera hacer lo mismo que yo, descubrí una manera de hacerlo, lo mas seguro no es la correcta, pero en internet no pude encontrar ni una forma de hacerlo, asi que me puse a programar lo que creí que podría funcionar. Aquí se los comparto.

Este es el codigo Jquery usando ajax
Código:
$("#qrcode").bind("change paste keypress",function(){change()});
function change(){
	//Codigo jquery con el metodo de prograacion ajax donde, por medio de este, se pasa el id del producto hacia php y este se encarga de buscar una coincidencia en la base de datos, devolviendo hacia el mismo php una serie de variables con las caracteristicas del producto.
	
	//var phpnombre_producto, phpprecio_producto, phpdescripcion_producto, phpstock_producto;
	var elid = $("#qrcode").val();
	//alert($("#qrcode").val());
	//alert("cambio!");
	var idGo = {'elid' : elid };
	$.ajax({
	    data:  idGo,
	    url:   'php/datosproducto.php',
	    type:  'post',
	    beforeSend: function () {
	        //$("#resultado").html("Procesando, espere por favor...");
	    },
		success:  function (response) {
			//Aqui, jquery recibe una cadena de texto generada desde php con las variables generadas a partir de los datos recibidos de la base de datos y este script de respuesta se encarga de convertir esa cadena, desmenusandola a detalle, en variables aparte segun la gerarquia de contenido anteriormente programada.
			var nombre = "";
			var precio = "";
			var descripcion = "";
			var stock = "";
			var a = 1;
			var b = 0;
			var c = 0;
			var d = 0;
			var tamano = response.length-1;
		    for(a; a < response.length; a++){
		    	if(response[a] != "[" || response[a] != "]"){
		    		nombre = "" + nombre + response[a] + "";
		    	}
		    	if (response[a] == "]") {
		    		b = a+2;
		    		a = response.length;
		    	};
		    }
		    for(b; b < response.length; b++){
		    	if(response[b] != "[" || response[b] != "]"){
		    		precio = "" + precio + response[b] + "";
		    	}
		    	if (response[b] == "]") {
		    		c = b+2;
		    		b = response.length;
		    	};
		    }
		    for(c; c < response.length; c++){
		    	if(response[c] != "[" || response[c] != "]"){
		    		descripcion = "" + descripcion + response[c] + "";
		    	}
		    	if (response[c] == "]") {
		    		d = c+2;
		    		c = response.length;
		    	};
		    }
		    for(d; d < response.length; d++){
		    	if(response[d] != "[" || response[d] != "]"){
		    		stock = "" + stock + response[d] + "";
		    	}
		    }
		    //elimina los corchetes al final de cada una de las cadenas.
		    nombre = nombre.replace("]", "");
		    precio = precio.replace("]", "");
		    descripcion = descripcion.replace("]", "");
		    stock = stock.replace("]", "");
		    $("#nombreproducto").val(nombre);
		    $("#precioproducto").val(precio);
		    $("#descripcionproducto").val(descripcion);
		    $("#stockproducto").html(stock);
		    $("#cantidadproducto").val(1)
		}
	});
}
Este es el codigo PHP:
Código PHP:
<?php
$idGo 
$_POST["elid"];
echo 
"[Productini][25.75][esta es la descripcion hecha devuelta con ajax][40]";
?>
Básicamente lo que hago es, con ajax, pasar el id del producto a php, con php buscarlo en la base de datos (en este caso por ser solo un ejemplo, entre los corchetes, puse valores cualquiera -entre los corchetes deberían ir las variables php donde bajo los datos de la bd con el orden [nombre][precio][descripción][stock]-). Después php los vuelve un array y los envía en un echo, el cual jquery toma en succes y realiza la lectura de el array y por medio de un for' recorro la cadena (que en si es un array) eliminando los corchetes y poniendo el respectivo valor en cada variable: (es el primer código que puse).

Sal