Foros del Web » Programando para Internet » Jquery »

Ajax Llenar campos input a partir de combobox

Estas en el tema de Ajax Llenar campos input a partir de combobox en el foro de Jquery en Foros del Web. 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. ...
  #1 (permalink)  
Antiguo 10/03/2017, 08:55
ivo
 
Fecha de Ingreso: noviembre-2002
Mensajes: 50
Antigüedad: 22 años
Puntos: 1
Exclamación Ajax Llenar campos input a partir de combobox

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
  1. <div class="form-title">
  2.  
  3. <div class="form-group">
  4. <label for="Cliente" id="BusClienteAbre"><a href="#">Cliente</a></label>
  5.  
  6. <?php
  7. include("includes/conexion.php");
  8. $c=mysql_query("select id_cliente, razonsocial from clientes order by id_cliente ASC");
  9. ?>
  10. <select name="clientes" class="form-control" id="clientes">
  11. <option value="">-Seleccione Cliente-</option>
  12. <?php while($r= mysql_fetch_object($c)){
  13. echo "<option value=".$r->id_cliente.">".$r->id_cliente." - ".$r->razonsocial."</option>";
  14. } ?>
  15. </select>
  16. </div>
  17. </div>             
  18.                                
  19.  
  20. <div class="row mb40">
  21. <div class="col-md-8">
  22.  
  23. <div class="form-title">
  24.  
  25. <div class="form-group">
  26. <label for="Sucursal">Sucursal</label>
  27. <input type="text" name="NoSucursal" class="form-control" id="NoSucursal" size="7" maxlength="5" placeholder="C&oacute;d. Sucursal">
  28. <select name="sucursales" class="form-control" id="sucursales" disabled="disabled">
  29. <option value="">-Sucursal-</option>
  30. </select>
  31. </div>
  32.  
  33. <div class="form-group">
  34. <label for="Interno">Interno</label>
  35. <input type="text" name="NoInterno" class="form-control" id="NoInterno" size="7" maxlength="5" placeholder="C&oacute;d. Interno">
  36. <select name="internos" class="form-control" id="internos" disabled="disabled">
  37. <option value="">-Interno-</option>
  38. </select>
  39. </div>
  40.  
  41. <div class="form-group">
  42. <label for="Direccion">Direccion</label>
  43. <input type="text" name="Direccion" class="form-control" id="Direccion" size="20">
  44. </div>


procesarcombos.js

Código Javascript:
Ver original
  1. $(function() {
  2. $("#sucursales,#internos").attr('disabled', true);
  3.  
  4. function ejecutar(obj1, obj2, task) {
  5. $('<img />', {
  6. 'class': 'loading',
  7. src: 'images/ajax-loader.gif',
  8. 'style': 'display:inline'
  9. }).insertAfter(obj1);
  10.  
  11. $.ajax({
  12. type: "POST",
  13. url: "actioncombos.php",
  14. dataType: "html",
  15. data: "task=" + task + "&id=" + $(obj1).val(),
  16. success: function(msg) {
  17. $(obj1).next('img').remove();
  18. $(obj2).html(msg).attr("disabled", false);
  19. },
  20. error: function(jqXHR, textStatus, errorThrown) {
  21. $(obj1).next('img').remove();
  22. alert("Error al ejecutar => " + textStatus + " – " + errorThrown);
  23. }
  24. });
  25. }
  26.  
  27.  
  28. $("#clientes").change(function(e) {
  29. $("#internos,#sucursales,#Direccion").attr('disabled', true);
  30. if ($(this).val().trim() != "") {
  31. ejecutar($(this), $("#sucursales"), "getSucursales");
  32. }
  33. });
  34. $("#sucursales").change(function(e) {
  35. $("#internos").attr('disabled', true);
  36. if ($(this).val().trim() != "") {
  37. ejecutar($(this), $("#internos"), "getInternos");
  38. }
  39. });
  40.  
  41. });

actioncombos.php

Código PHP:
Ver original
  1. <?php
  2. include("includes/conexion.php");
  3.  
  4. function getSucursales() {
  5. $cliente = $_POST["id"];
  6. $resultSucursales = mysql_query("SELECT id_clienteSuc, id_sucursal, descripcion
  7.                        FROM sucursales
  8.                        WHERE id_clienteSuc = '$cliente'
  9.                        ORDER BY id_sucursal ASC  
  10.                        ");
  11.             echo '<option value="0">-Seleccione sucursal-</option>';
  12.             if ($rowSucursales = mysql_fetch_array($resultSucursales)){
  13.             do {
  14.             echo '<option value="'.$rowSucursales["id_sucursal"].'">';
  15.             echo ''.$rowSucursales["descripcion"].'</option>';
  16.            
  17.             }
  18.             while ($rowSucursales = mysql_fetch_array($resultSucursales));
  19.             } else {
  20.             echo '<option>Cliente sin Sucursales.</option>';
  21.             }
  22. }
  23.  
  24. function getInternos() {
  25. $sucursal = $_POST["id"];
  26. $resultInternos = mysql_query("SELECT id_intaut, id_cliente, id_sucursal, apellido, nombres
  27.                        FROM internosautorizados
  28.                        WHERE id_sucursal = '$sucursal'
  29.                        ORDER BY id_intaut ASC  
  30.                        ");
  31.             echo '<option value="0">-Seleccione interno-</option>';
  32.             if ($rowInterno = mysql_fetch_array($resultInternos)){
  33.             do {
  34.             echo '<option value="'.$rowInterno["id_intaut"].'">';
  35.             echo ''.$rowInterno["apellido"].', '.$rowInterno["nombres"].'</option>';
  36.            
  37.             }
  38.             while ($rowInterno = mysql_fetch_array($resultInternos));
  39.             } else {
  40.             echo '<option>Cliente sin Internos.</option>';
  41.             }
  42.  
  43. }
  44.            
  45.  
  46.  
  47. if ($_POST) {
  48. switch ($_POST["task"]) {
  49. case "getSucursales":
  50. getSucursales();
  51. break;
  52. case "getInternos":
  53. getInternos();
  54. break;
  55. }
  56. }
  57. ?>
__________________
Ivo
  #2 (permalink)  
Antiguo 10/03/2017, 09:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: Ajax Llenar campos input a partir de combobox

se debe a que tu respuesta en PHP sólo está devolviendo los <option> para crear los combos dependientes, para hacer lo que quieres debes de devolver más que los <option>.

te recomiendo que devuelvas una cadena en formato JSON la cual puedes parsear en javascript, y con ella devuelvas un JSON con los 2 datos: los <option> y los valores de los inputs.

Etiquetas: ajax, javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:21.