Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/03/2009, 10:36
sesebas
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 16 años
Puntos: 1
Listas dependientes con PHP y JavaScripts

Hola a todos,

Estoy tratando de ejecutar (a modo de aprendizaje) el código que encontré en un artículo disponible en la web de “driverop” y que utiliza PHP y JavaSript para obtener valores de una lista dependiente y enviarlos a un archivo PHP que se despliega como resultado de la operación. Funciona todo bien… excepto al momento de obtener la respuesta final porque no consigo pasar los valores del SELECT al archivo “recibe.php”. Si alguien me puede ayudar dándome una pista acerca del código que debe tener el Script en “recibe.php” (en el artículo no aparece) se lo agradecería mucho... y una idea para hacer que la selección en el segundo SELECT fuera múltiple? Lo agradecería más.

Gracias!

A continuación el código y los archivos requeridos:



select2.txt

Código JavaScript:
Ver original
  1. AR=BA:Buenos Aires*CB:Córdoba*ER:Entre Ríos
  2. MX=DF:Distrito Federal*MI:Michoacán*MY:Monterrey
  3. CO=DC:Distrito Capital*AT:Atlántico*AN:Antioquía

recibe.php

Código JavaScript:
Ver original
  1. Aquí no se que debo poner... ayuda por favor!

test_select.php

<!-- Código propuesto por Diego Romero -->
<!-- sitio "driverop" en programas / php del índice -->
<--! Disculpen, pero no puedo poner la dirección completa... "motivos anti-spam"-->

<!-- Está línea de código no la pude subir, pero ahí indico dónde debía ir -->
<!-- $sel1 = (aquí va el signo arroba)$_POST['selector1']; -->

Código JavaScript:
Ver original
  1. <?php
  2.  
  3. //función que extrae datos desde el archivo de texto
  4. // “select2.txt” y llena el SELECT dependiente según
  5. // la elección hecha en el primer SELECT
  6.  
  7. function GetContentSel2($sel) {
  8.   $result = "";
  9.   $found = FALSE;
  10. // se abre ell archivo de texto
  11.   $fh = fopen("select2.txt","r");
  12.   do {
  13.     $aux = trim(fgets($fh));
  14.     $aux = explode("=",$aux);
  15.     if ($aux[0] == $sel) {
  16.       $found = TRUE;
  17.       $result = $aux[1];
  18.     }
  19.   } while (($found == FALSE) and (!feof($fh)));
  20.   fclose($fh);
  21.   return $result;
  22. }
  23.  
  24. // Aquí se utiliza lo devuelto por la función “GetContentSel2”
  25. // y se pasa a la variable “$contentsel2” para rellenar el SELECT
  26. // dependiente con estos valores
  27.  
  28. $fillsel2 = FALSE;
  29. $sel1 = "";
  30. $request_method = $_SERVER["REQUEST_METHOD"];
  31. if ($request_method == "POST") {
  32. // Aquí la una línea de código que no puedo subir por motivos anti-spam (mensaje de error)
  33.   if (!empty($sel1) and ($sel1 != "null")) {
  34.     $contentsel2 = GetContentSel2($sel1);
  35.     if (!empty($contentsel2)) { $fillsel2 = TRUE; }
  36.   }
  37. } // if reqmet
  38. ?>
  39. <html>
  40. <head>
  41. <title>Ejemplo de select dependientes</title>
  42. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  43. </head>
  44. <script language="JavaScript" type="text/JavaScript">
  45. function Seleccionar() {
  46.   var a = document.form1.selector1.value;
  47.   if (a != "null") {
  48.      document.form1.action="";
  49.      document.form1.submit();
  50.   }
  51.   else { alert("Seleccione un valor."); }
  52. }
  53. </script>
  54. <body>
  55. // Se hace referencia al archivo "recibe.php"
  56. <form name="form1" method="post" action="recibe.php">
  57. // Primer SELECT
  58.   <select name="selector1" id="selector1" onChange="javascript:Seleccionar();">
  59.     <option value="null"<?php if (empty($sel1)) { echo " selected"; }
  60.     ?>>Seleccione un valor</option>
  61.     <option value="AR"<?php if ($sel1 == "AR") { echo " selected"; }
  62.     ?>>Argentina</option>
  63.     <option value="MX"<?php if ($sel1 == "MX") { echo " selected"; }
  64.     ?>>México</option>
  65.     <option value="CO"<?php if ($sel1 == "CO") { echo " selected"; }
  66.     ?>>Colombia</option>
  67.   </select>
  68. // SELECT dependiente
  69.   <select name="selector2" id="selector2">
  70. <?php
  71. // se obtienen valores del archivo de texto para rellenar el SELECT dependiente
  72.   if ($fillsel2) {
  73.     $contentsel2 = explode("*",$contentsel2);
  74.     foreach($contentsel2 as $key => $value) {
  75.       $item = explode(":",$value);
  76.       echo '<option value="'.$item[0].'">'.$item[1].'</option>'."\n";
  77.     } // foreach
  78.   } // if
  79.   else {
  80. ?>
  81.     <option value="null" selected>(Vacío)</option>
  82. <?php } ?>
  83.   </select>
  84. // se envían los valores al archivo "recibe.php" a partir de la selección
  85. // hecha en el SELECT dependiente... Funciona en la página de ejemplo,
  86. // pero en la mía.. Nada!
  87.  <input type="submit" name="Submit" value="Enviar">
  88. </form>
  89. </body>
  90. </html>