0

Tengo una tabla producto la cual tiene código, nombre, etc..
entonces al momento de ingresar el código del producto en formulario, automáticamente coloque el nombre de ese producto...

<form  accept-charset="utf-8">  
    <div class="form-group" id='mcodigo'>
        <label>Código</label> 
        <input type="text" class="form-control" required placeholder="Código" id='codigo' name='codigo' autofocus>
    </div>

    <div class="form-group">
        <label>Nombre</label>
        <input type="text" disabled class="form-control" id='nombre' name='nombre'>
    </div>
 </form>
JuankGlezz
  • 5,398
  • 8
  • 28
  • 57

2 Answers2

1

Pues hay una funcion que se llama change() en jquery, en el que capturas el valor de la siguiente manera.

$(document).ready(function(){ // Se ejecuta una vez que el DOM de la pagina este listo
        $( "#codigo" ).change(function() { //Captura cada vez que vea un cambio en el input con id "codigo"
              //Ejecuta la accion a realizar
        });
});

Aquí la pregunta es: ¿Tienes un controlador, que al pasar un parametro (el codigo), te devuelve los parametros que necesitas de vuelta? y ¿Tienes una conexion con la base de datos, y la query que necesita para ello?

Estas preguntas son clave, por que la idea es que cada vez que cambie de dato en este input, se ejecute un ajax el cual hará una llamada asíncrona a buscar tus datos en tiempo real, a el controlador, donde se le pasara el parámetro "código" y este al ejecutar una consulta a la base de datos, devolverá la información que se necesite, y a través del mismo ajax, dejaremos la o las respuestas en sus respectivos inputs. Saludos!

Jose Miguel Sepulveda
  • 2,036
  • 5
  • 20
  • 37
0
<?php

include('Conexion.php');

$codigo = $_POST["codigo"];

if (!$con) {
    echo 'No pudo conectarse a mysql';
    exit;
}

if (!mysql_select_db('BASE DE DATOS', $con)) {
    echo 'No pudo seleccionar la base de datos';
    exit;
}

$sql       = 'SELECT nombre FROM TABLADEDATOS WHERE codigo = '.$codigo; //solo un ejemplo de la consulta
$resultado = mysql_query($sql, $con);

if (!$resultado) {
    echo "Error de BD, no se pudo consultar la base de datos\n";
    echo "Error MySQL: ' . mysql_error();
    exit;
}


$pila = array();
while ($fila = mysql_fetch_assoc($resultado)) {
      array_push($pila, $fila['nombre']);
}

echo json_encode($pila);

mysql_free_result($resultado);


?>

Considera $con como la variable de conexión para conectarse a la clase de esta misma. Se pasa el include de la conexion, luego capturas por el "POST" el codigo que le has de pasar desde la pagina web a el controlador. Luego haces unas consultas para ver si te puedes conectar con la bbdd y con la tabla que necesitas. Posterior a eso haces una consulta, lo montas en una variable y haces la consulta a la bbdd con mysql_query donde hará la llamada a la BBDD. Si este tiene problemas, te regresara un error, y si no colocara el resultado en un array como nuevo elemento. Una vez recorrido todos los resultados, te devolverá un json, donde en jquery por medio de ajax lo capturaras.

Avísame cuando tengas estos pasos listos, y perdón por la demora.

Jose Miguel Sepulveda
  • 2,036
  • 5
  • 20
  • 37
  • okey.,,.gracias lo revisare.,, – Cheke Sanchez Mar 31 '17 at 16:47
  • @ChekeSanchez te aconsejo a utilizar `MySQLi*`, ya que la extensión `MySQL*` fue declarada obsoleta en `PHP 5.5.0` y eliminada en `PHP 7.0.0.` En su lugar debería utilizarse las extensiones `MySQLi` o `PDO_MySQL`. http://php.net/manual/es/function.mysql-connect.php – Diablo Mar 31 '17 at 20:03
  • gracias por tus recomendaciones., Lo tomare en cuenta., – Cheke Sanchez Mar 31 '17 at 20:39
  • Como bien dijo es de PHP 5.5, pero estas trabajando con PHP 5.0 xDD por eso coloque esa conexión – Jose Miguel Sepulveda Apr 01 '17 at 20:37
  • @JoséMiguelSepulveda yo tengo un problema al querer seleccionar los datos de mi base de datos, espero me puedas ayudar https://es.stackoverflow.com/questions/91211/mostrar-resultado-en-inputs-con-b%c3%basqueda-sql?noredirect=1#comment168129_91211 – Cesar Gutierrez Davalos Jul 28 '17 at 16:53