Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/09/2010, 09:26
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: combox dependientes y utilizar opción elegida

Cita:
Iniciado por kekaes Ver Mensaje
Pues la pagina combo1.php sería así:

Código PHP:
Ver original
  1. <?php
  2. include("includes/config.inc.php");
  3. include("includes/mysql.class.php");
  4. $db = new MySQL();  
  5. $db->open();
  6. $consulta = $db->consulta("SELECT * FROM ANNO WHERE id_tipo LIKE '$_POST[elegido]'");    //SELECT columna FROM tabla WHERE nombre de columna LIKE texto_a_buscar
  7. echo '<option value="0">Elija año</option>';    
  8. if ($row = $db->fetch_array($consulta)) {
  9.     do {
  10.         echo
  11.         '<option value="'.$row['id_anno'].'">'.$row['anno'].'</option>';
  12.     }while($row = $db->fetch_array($consulta));
  13.  
  14. }
  15. ?>

La combo2.php

Código PHP:
Ver original
  1. <?php
  2. include("includes/config.inc.php");
  3. include("includes/mysql.class.php");
  4. $db = new MySQL();  
  5. $db->open();
  6. $consulta = $db->consulta("SELECT * FROM MES WHERE id_anno LIKE '$_POST[elegido2]'");    //SELECT columna FROM tabla WHERE nombre de columna LIKE texto_a_buscar
  7. echo '<option value="0">Elija mes</option>';
  8. if ($row = $db->fetch_array($consulta)) {
  9.     do {
  10.         echo
  11.         '<option value="'.$row['id_mes'].'">'.$row['mes'].'</option>';
  12.     }while($row = $db->fetch_array($consulta));
  13. }
  14. ?>

Las tengo por serparado porque como soy muy novata en esto, lo veo más intuitivo y si hago pequeñas modificaciones, es más fácil saber donde he podido meter la pata.

He conseguido a través de .$_POST[combo1], saber el índice de la opción que se ha elegido pero no consigo que me de el nombre exacto de la elección.
A seguir investigando...
bueno, pues para ser novata vas bien
ahora, yo decía por ej tener una página genérica donde
dependiendo del combo que has enviado, haga una consulta distinta
y a su vez los campos a mostrar sean distintos

ej

Código PHP:
Ver original
  1. <?php
  2. include("includes/config.inc.php");
  3. include("includes/mysql.class.php");
  4. $db = new MySQL();  
  5. $db->open();
  6. //pregunto cual es el combo
  7. if( array_key_exists ('elegido',$_POST))
  8. {
  9. $table = 'ANNO';
  10. $field = 'id_tipo LIKE \'$_POST["elegido"]\''; //si da error de sintaxis, es por uso de comillas, no lo he probado, escribi al "vuelo" aquí en foros, revisaria concatenación y eso
  11. $row0 = 'id_anno';
  12. $row1 = 'anno';
  13. }
  14. else if( array_key_exists('elegido2',$_POST) )
  15. {
  16. $table = 'MES';
  17. $field = 'id_anno LIKE \'$_POST["elegido2"]\'';
  18. $row0 = 'id_mes';
  19. $row1 = 'mes';
  20. }
  21. $consulta = $db->consulta("SELECT * FROM ".$table." WHERE ".$field);    
  22. echo '<option value="0">Elija mes</option>';
  23. if ($row = $db->fetch_array($consulta)) {
  24.     do {
  25.         echo
  26.         '<option value="'.$row[$row0].'">'.$row[$row1].'</option>';
  27.     }while($row = $db->fetch_array($consulta));
  28. }
  29. ?>

de este modo, si necesitas otros combos, pues agregas más else if
modificando los datos y de resto, debería funcionarte de una vez

en cuanto a lo que dices que ya recuperas el value del select, pero no el label,
tal vez jquery tenga alguna propiedad para recuperar dicho valor,
y si no es así, entonces haz lo siguiente

crea en el formulario un campo tipo hidden y llamalo "combo_label",
y luego por javascript o jquery, en el evento onChange del combo
en el que estas trabajando, le dices que combo_label.value sea igual
al texto del combo, algo así

Código Javascript:
Ver original
  1. combo_label.value = elegido.options[elegido.selectedIndex].text;
y luego para pasar ese parámetro en la función jquery que ya
tienes, le pasas el valor de combo_label
prueba y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com