Guest User

Untitled

a guest
Mar 20th, 2018
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 KB | None | 0 0
  1. <?php
  2. $host = "localhost";
  3. $dbname = "animales";
  4. $user = "postgres";
  5. $pw = "admin";
  6. $port = "5432";
  7. $packedString = "host=" . $host . " dbname=" . $dbname . " user=" . $user . " password=" . $pw . " port=" . $port;
  8. $db = pg_connect("$packedString")or die('Could not connect: ' . pg_last_error());
  9. ?>
  10. //***** combos_combinados.php *****//
  11. <html>
  12. <head>
  13. <script language="javascript">
  14. // Función que rellena el segundo combo según el valor seleccionado en el primero.
  15. // Se le pasa como parámetro el nombre del formulario desde el cuál se llama a la función
  16. function rellenaCombo(formulario)
  17. {
  18. with (document.forms[formulario]) // Establecemos por defecto el nombre formulario pasado para toda la función.
  19. {
  20. var cat = id_grupo[id_grupo.selectedIndex].value; // Valor seleccionado en el primer combo.
  21. var n = id_animal.length; // Numero de líneas del segundo combo.
  22.  
  23. id_animal.disabled = false; // Activamos el segundo combo.
  24.  
  25. for (var i = 0; i < n; ++i)
  26. id_animal.remove(id_animal.options[i]); // Eliminamos todas las líneas del segundo combo.
  27.  
  28. id_animal[0] = new Option("Seleccione un animal", 'null'); // Creamos la primera línea del segundo combo.
  29.  
  30. if (cat != 'null') // Si el valor del primer combo es distinto de 'null'.
  31. {
  32. <?php
  33. // Para cada grupo, construimos el segundo combo con los animales del mismo.
  34. $cons_cat = @pg_exec($db, "SELECT * FROM grupo;");
  35.  
  36. for ($l = 0; $l < pg_numrows($cons_cat); ++$l)
  37. {
  38. $cen = @pg_fetch_object($cons_cat, $l);
  39. ?>
  40. if (cat == '<?php echo $cat->id_grupo;?>')
  41. {
  42. <?php
  43. // Construimos los valores del segundo combo con los animales de grupo
  44. $cons_rez = @pg_exec($db, "SELECT * FROM animal WHERE id_grupo = ".$cat->id_grupo." ORDER BY nombre_animal;");
  45.  
  46. for ($m = 0; $m < pg_numrows($cons_rez); ++$m)
  47. {
  48. $rez = @pg_fetch_object($cons_rez, $m);
  49. ?>
  50. id_animal[id_animal.length] = new Option("<?php echo $rez->nombre_animal;?>", '<?php echo $rez->id_grupo;?>');
  51. <?php
  52. }
  53. ?>
  54. }
  55. <?php
  56. }
  57. ?>
  58. Id_animal.focus(); // Enviamos el foco al segundo combo.
  59. }
  60. else // El valor del primer combo es 'null'.
  61. {
  62. Id_animal.disabled = true; // Desactivamos el segundo combo (que estará vacío).
  63. id_grupo.focus(); // Enviamos el foco al primer combo.
  64. }
  65.  
  66. id_animal.selectedIndex = 0; // Seleccionamos el primer valor del segundo combo ('null').
  67. }
  68. }
  69. </script>
  70. </head>
  71. <body>
  72. <table>
  73. <tr>
  74. <td>
  75. <form name="datos" method="post" action="...">
  76.  
  77. <select name="id_grupo" onChange="rellenaCombo('datos');">
  78. <option value="null" selected>Seleccione un grupo de animales
  79. <?php
  80. // CODIGO PHP
  81. // Contruimos el primer combo con los valores de la tabla 'grupo'.
  82. $cons_cat = @pg_exec($db, "SELECT * FROM grupo;");
  83.  
  84. for ($k = 0; $k < pg_numrows($cons_cat); ++$k)
  85. {
  86. $cat = @pg_fetch_object($cons_cat, $k);
  87. echo " <option value="".$cat->id_grupo."">".$cat->grupo."n";
  88. }
  89. ?>
  90. </select>
  91. </td>
  92. <td>
  93. <select name="id_animal" disabled>
  94. <option value="null">Seleccione un animal
  95. </select>
  96. </td>
  97. </form>
  98.  
  99. </tr>
  100.  
  101. </table>
  102. </body>
  103. </html>
Add Comment
Please, Sign In to add comment