Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: KateLibby en 8 Enero 2016, 14:11 pm



Título: Combos dependientes con un solo valor
Publicado por: KateLibby en 8 Enero 2016, 14:11 pm
Hola! Tengo un programa que consiste en 3 combos dependientes (Cliente, Proyecto y Sector), donde al ingresar en la web se rellena el combo Cliente dependiendo del usuario logueado. Una vez se ha elegido el cliente, por Ajax se carga el combo Proyecto de acuerdo con los proyectos que puede ver ese cliente, y después se cargan los sectores dependiendo de los que pueda ver el proyecto seleccionado.

Mi duda es que ahora quiero hacer que cuando en el combo sólo haya un resultado, no sea necesario seleccionarlo y automaticamente cargue los valores del combo siguiente. Pero no sé cómo hacerlo sin que suponga una reprogramación de arriba a abajo, porque el problema de cómo lo tengo ahora (con ajax) es que necesito ejecutar algun evento javascript para darle la orden de que busque (en este caso utilizo onChange), y si quiero que lo haga de forma automática no sé cómo hacerlo. ¿Alguna ayuda?

Os pongo el código. Gracias de antemano.

Código
  1. function getProjects(client)
  2. {
  3.   $.ajax({
  4.   type: "GET",
  5.   url: "ajax/getProjects.php",
  6.   data: "client=" + client,
  7.   async: false,
  8.   success: function(data)
  9.   {
  10.     $("#projects").html(data);
  11.   }
  12.  });
  13. }
  14.  
  15. function getSectors(project)
  16. {
  17.   $.ajax({
  18.   type: "GET",
  19.   url: "ajax/getSectors.php",
  20.   data: "project=" + project,
  21.   async: false,
  22.   success: function(data)
  23.   {
  24.     $("#combosectors").html(data);
  25.   }
  26.  });
  27. }
  28.  
  29. function enviarFormulario()
  30. {
  31.  document.formsectors.submit();
  32. }
  33.  
  34. <div id="sidebar">
  35.  
  36.        /* Aqui hago la consulta SQL para que me busque todos los clientes que pertenecen al usuario logueado */
  37.  
  38. <h2>CLIENTES</h2>
  39.    <form name="formcustomers" action="" method="POST">
  40.     <select name="customers" onChange="this.form.submit()">
  41.          /* Resultados SQL clientes */
  42.     </select>
  43.    </form>
  44.  
  45. <h2>PROYECTOS</h2>
  46.    <form name="formprojects" action="" method="POST">
  47.        <select name="projects" id="projects" onChange="this.form.submit()">
  48.              /* Busco y muestro los resultados SQL de los proyectos que pertenecen a ese cliente*/
  49.        </select>
  50.        <input type="hidden" name="customers" value="<?php echo $_POST['customers'] ?>">
  51.    </form>
  52.  
  53. <h2>SECTORES</h2>
  54.    <form name="formsectors" action="index.php" method="POST">
  55.        <select name="combosectors" id="combosectors" onChange="enviarFormulario()">
  56.                  /* Busco y muestro los resultados SQL de los sectores que pertenecen a ese proyecto*/          
  57.        </select>
  58.        <input type="hidden" name="customers" value="<?php echo $_POST['customers'] ?>">
  59.        <input type="hidden" name="projects" value="<?php echo $_POST['projects'] ?>">
  60.    </form>