entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Autocompletar inputs mediante el valor de otro input

Hola que tal vengo con esta duda de no poder lograr hacer funcionar este codigito...
Explico detalladamente lo que quiero realizar: Lo que quiero hacer es mediante el valor del input code es decir mediante el valor que coloque en un input me complete automaticamente otros 2 input con sus respectivos valores..
Esto es lo que tengo hasta ahora y no lo puedo hacer funcionar...

Mi codigo html.

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<link href="css/jqueryui.css" type="text/css" rel="stylesheet"/>
<script>
  $(document).ready(function(){
    $( "#code" ).autocomplete({
      source: "searchcode.php",
      minLength: 2
    });

    $("#code").focusout(function(){
      $.ajax({
            url:'code.php',
          type:'POST',
          dataType:'json',
          data:{ code:$('#code').val()}
      }).done(function(respuesta){
          $("#rsoc").val(respuesta.rsoc);
          $("#cuit").val(respuesta.cuit);
      });
    });
});
</script>

    <?php 
$typef = TypeF::getAll();
    ?>
<div class="row">
  <div class="col-md-12">
<div class="btn-group pull-right">
  <a href="index.php?view=newtypef" class="btn btn-default"><i class='fa fa-th-list'></i> Nuevo Tipo Factura</a>
</div>
    <h1>Añadir Factura</h1>
    <br>
        <form class="form-horizontal" method="post" id="addiva" action="index.php?view=addiva" role="form">

  <div class="form-group">
    <label for="inputEmail1" class="col-lg-2 control-label">Codigo*</label>
    <div class="col-md-3">
      <input type="text" name="code" class="form-control" id="code" value="" placeholder="Codigo">
    </div>
    <label for="inputEmail1" class="col-lg-1 control-label">Razon Social*</label>
    <div class="col-md-4">
      <input type="text" name="rsoc" class="form-control" id="rsoc" value="" placeholder="Razon Social">
    </div>
  </div>

    <div class="form-group">
    <label for="inputEmail1" class="col-lg-2 control-label">Cuit*</label>
    <div class="col-md-3">
      <input type="text" name="cuit" class="form-control" id="cuit" value="" placeholder="Cuit">
    </div>
    <label for="inputEmail1" class="col-lg-1 control-label">Tipo Factura</label>
    <div class="col-md-4">
    <select name="typef_id" class="form-control">
    <option value="">-- NINGUNO --</option>
    <?php foreach($typef as $tpf):?>
      <option value="<?php echo $tpf->id;?>"><?php echo $tpf->name;?></option>
    <?php endforeach;?>
      </select>    </div>
  </div>

<hr>

  <p class="alert alert-info">* Campos obligatorios</p>

  <div class="form-group">
    <div class="col-lg-offset-2 col-lg-10">
      <button type="submit" class="btn btn-primary">Agregar Factura</button>
    </div>
  </div>
</form>
    </div>
</div>

Mi searchcode.php ...

<?php

$conexion = new mysqli('localhost','root','','crelia');
$code = $_GET['term'];
$consulta = "select code FROM person WHERE code LIKE '%$code%'";

$result = $conexion->query($consulta);

if($result->num_rows > 0){
    while($fila = $result->fetch_array()){
        $codes[] = $fila['code'];       
    }
    echo json_encode($codes);
}

?>

Mi code.php :

<?php

    $conexion = new mysqli('localhost','root','','crelia');
    $code = $_POST['code'];
    $consulta = "select rsoc, cuit FROM person WHERE code = '$code'";

    $result = $conexion->query($consulta);

    $respuesta = new stdClass();
    if($result->num_rows > 0){
        $fila = $result->fetch_array();
        $respuesta->rsoc = $fila['rsoc'];
        $respuesta->cuit = $fila['cuit'];   
    }
    echo json_encode($respuesta);

?>

1voto

carlossevi comentado

¿Y cual es el fallo? ¿No funciona nada? ¿Hace algo pero no lo que esperabas? Danos alguna pista más porque nosotros no podemos probarlo desde aquí =)

1voto

Giuliano comentado

Simplemente me da como resultado: "No search results." por lo cual me tendria que dar los dos parametros que le estoy pidiendo que en mi caso serian rsoc y cuit de la base de datos de "x" usuario y llenar automaticamente los otros 2 inputs..

1voto

carlossevi comentado

¿Pero cual de las dos partes no te funciona? ¿El autocomplete() o el focusout()? ¿Has probado a hacer peticiones GET desde el navegador a /searchcode.php y /code.php para validar el JSON devuelto?

1voto

Giuliano comentado

Probare y te digo, gracias por el recordatorio..

1 Respuesta

1voto

Giuliano Puntos280

Den como solucionado simplemente me confundi en las direcciones de localización de las librerias...

1voto

Peter comentado

Por favor edita esta respuesta, pon el código de como debe ir y selecciónala como correcta.

Saludos.

2votos

Giuliano comentado

Simplemente no funcionaba ya que mi dirección estaba mal colocada, hay que colocar bien la dirección de los archivos searchcode.php y code.php sino nunca recibirá ni enviara datos..:

<script>
  $(document).ready(function(){
    $( "#code" ).autocomplete({
      source: "searchcode.php",
      minLength: 2
    });

    $("#code").focusout(function(){
      $.ajax({
            url:'code.php', 
          type:'POST',
          dataType:'json',
          data:{ code:$('#code').val()}
      }).done(function(respuesta){
          $("#rsoc").val(respuesta.rsoc);
          $("#cuit").val(respuesta.cuit);
      });
    });
});
</script>

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


Actividad Reciente

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta