necesito ayuda porque no puedo logar esto:
Aquí tengo un código que conseguí en la web y adapté para llenar combobox dependientes. Pero necesito que a partir de la selección del segundo combo se completen campos input, obteniendo datos de una tabla de la DDBB.
Estuve investigando pero no puedo conseguirlo.
Agradezco ayuda.
Dejo mi código:
solicitudes.php
Código PHP:
Ver original
<div class="form-title"> <div class="form-group"> <label for="Cliente" id="BusClienteAbre"><a href="#">Cliente</a></label> <?php include("includes/conexion.php"); ?> <select name="clientes" class="form-control" id="clientes"> <option value="">-Seleccione Cliente-</option> echo "<option value=".$r->id_cliente.">".$r->id_cliente." - ".$r->razonsocial."</option>"; } ?> </select> </div> </div> <div class="row mb40"> <div class="col-md-8"> <div class="form-title"> <div class="form-group"> <label for="Sucursal">Sucursal</label> <input type="text" name="NoSucursal" class="form-control" id="NoSucursal" size="7" maxlength="5" placeholder="Cód. Sucursal"> <select name="sucursales" class="form-control" id="sucursales" disabled="disabled"> <option value="">-Sucursal-</option> </select> </div> <div class="form-group"> <label for="Interno">Interno</label> <input type="text" name="NoInterno" class="form-control" id="NoInterno" size="7" maxlength="5" placeholder="Cód. Interno"> <select name="internos" class="form-control" id="internos" disabled="disabled"> <option value="">-Interno-</option> </select> </div> <div class="form-group"> <label for="Direccion">Direccion</label> <input type="text" name="Direccion" class="form-control" id="Direccion" size="20"> </div>
procesarcombos.js
Código Javascript:
Ver original
$(function() { $("#sucursales,#internos").attr('disabled', true); function ejecutar(obj1, obj2, task) { $('<img />', { 'class': 'loading', src: 'images/ajax-loader.gif', 'style': 'display:inline' }).insertAfter(obj1); $.ajax({ type: "POST", url: "actioncombos.php", dataType: "html", data: "task=" + task + "&id=" + $(obj1).val(), success: function(msg) { $(obj1).next('img').remove(); $(obj2).html(msg).attr("disabled", false); }, error: function(jqXHR, textStatus, errorThrown) { $(obj1).next('img').remove(); alert("Error al ejecutar => " + textStatus + " – " + errorThrown); } }); } $("#clientes").change(function(e) { $("#internos,#sucursales,#Direccion").attr('disabled', true); if ($(this).val().trim() != "") { ejecutar($(this), $("#sucursales"), "getSucursales"); } }); $("#sucursales").change(function(e) { $("#internos").attr('disabled', true); if ($(this).val().trim() != "") { ejecutar($(this), $("#internos"), "getInternos"); } }); });
actioncombos.php
Código PHP:
Ver original
<?php include("includes/conexion.php"); function getSucursales() { $cliente = $_POST["id"]; FROM sucursales WHERE id_clienteSuc = '$cliente' ORDER BY id_sucursal ASC "); echo '<option value="0">-Seleccione sucursal-</option>'; do { echo '<option value="'.$rowSucursales["id_sucursal"].'">'; echo ''.$rowSucursales["descripcion"].'</option>'; } } else { echo '<option>Cliente sin Sucursales.</option>'; } } function getInternos() { $sucursal = $_POST["id"]; FROM internosautorizados WHERE id_sucursal = '$sucursal' ORDER BY id_intaut ASC "); echo '<option value="0">-Seleccione interno-</option>'; do { echo '<option value="'.$rowInterno["id_intaut"].'">'; echo ''.$rowInterno["apellido"].', '.$rowInterno["nombres"].'</option>'; } } else { echo '<option>Cliente sin Internos.</option>'; } } if ($_POST) { switch ($_POST["task"]) { case "getSucursales": getSucursales(); break; case "getInternos": getInternos(); break; } } ?>