Hola a todos,
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");
$c=mysql_query("select id_cliente, razonsocial from clientes order by id_cliente ASC"); ?>
<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"];
$resultSucursales = mysql_query("SELECT id_clienteSuc, id_sucursal, descripcion 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"];
$resultInternos = mysql_query("SELECT id_intaut, id_cliente, id_sucursal, apellido, nombres 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;
}
}
?>