Foros del Web » Programando para Internet » PHP »

solicito ayuda para terminar un select dinamico

Estas en el tema de solicito ayuda para terminar un select dinamico en el foro de PHP en Foros del Web. Hola amigos, tengo la necesidad de que se cree un nuevo select segun lo que se haya elegido en un select anterior, he cogido un ...
  #1 (permalink)  
Antiguo 25/06/2010, 06:50
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
Pregunta solicito ayuda para terminar un select dinamico

Hola amigos, tengo la necesidad de que se cree un nuevo select segun lo que se haya elegido en un select anterior, he cogido un codigo que alguien publico por hay referente a paises y ciudades y e intentado adapatarlo pero e llegado al momento en el que me e perdido :D. ¿Me podrian ayudar a adaptarlo? el codigo es el siguiente:

Código PHP:
<?php
include('areaprivada/registro/config.php');
?>
<html>
<head>
<script language="JavaScript">

/* Trae desde la base de datos los nombres de los paises */
/* y colóos en este arreglo. */
<?php
$i
=1;
echo 
"var aPaises = new Array(' '";
$query1 mysql_query("SELECT * FROM industrias");
while(list(
$industria$id_industria)=mysql_fetch_row($db_link)) {
echo 
", '$industria'";
$array_industria[$i] = $id_industria;
$i++;
}
echo 
");\n";

echo 
"var aEstados0 = new Array(' ');\n";

for(
$j=1$j<$i;$j++) {
$tempid $array_industria[$j];
$sele2 mysql_query("SELECT * FROM productos WHERE id_industria='1'");
echo 
"var aEstados".$j." = new Array (' '";
while(list(
$ciudad)=mysql_fetch_row($db_link)) {
echo 
", '$ciudad'";
}
echo 
");\n";
}


/* Arma un arreglo general de estados a partir de los arreglos */
/* anteriores. Es importante que cada arreglo comience por un */
/* valor en blanco y que el primer arreglo de ciudades, llamado */
/* aqui aEstados0, no contenga ningúemento. */
echo "var aEstados = new Array( aEstados0";
for(
$a=1;$a<$j;$a++) {
echo 
", aEstados".$a;
}
echo 
");\n";
?>

function opcion(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}

function cambia(oMster, oCntrl){
var nSelected = oMster.selectedIndex;
while (oCntrl.length) oCntrl.remove(0);
for(var i = 0; i < aEstados[nSelected].length; i++)
opcion(oCntrl, i, aEstados[nSelected][i], String(i));
}

function llena(oCntrl){
while (oCntrl.length) oCntrl.remove(0);
for(var i = 0; i < aPaises.length; i++)
opcion(oCntrl, i, aPaises[i], String(i));
}

</script>
</head>
<body>
<form name="frm">
Pais
<select name="industria" onchange="cambia(this, document.frm.ciudad)">
<option value=" ">&nbsp;</option>
</select>
&nbsp;&nbsp;&nbsp;
Ciudad
<select name="ciudad">
<option value=" ">&nbsp;</option>
</select>
</form>
<script language="JavaScript">
llena(document.frm.industria);
</script>
</body>
</html>
Lo que tengo en la base de datos son dos tablas una llamada "industrias, con dos campos 'id_industria y nombreindustria'" y la otra llamada "productos con 3 campos 'id_producto, id_industria, nombreproducto'" lo que quiero es que segun la industria que haya seleccionado muestre en el otro select todos los resultados de "productos" que lleven el id_industria igual al seleccionado en el primer select....

Espero no haberos liado ya que yo si lo estoy :D
  #2 (permalink)  
Antiguo 25/06/2010, 07:23
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: solicito ayuda para terminar un select dinamico

Hola

Mas o menos es este el javascript que se te crea. A ver si así logras resolverlo

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function funcion(val) {
  5. var arraydosdim = new Array('MUSICA','VIDEOJUEGOS','BLOGS','REDES SOCIALES');
  6.  
  7. var arraydosdim2 = new Array();
  8. arraydosdim2[0]=new Array('Heavy Metal','Rock and Roll','Trash Metal');
  9. arraydosdim2[1]=new Array('Tomb Raider','Super Mario Bros','Fifa 2009');
  10. arraydosdim2[2]=new Array('Enrique Garcia','Javier Gallardo','Imnominia');
  11. arraydosdim2[3]=new Array('FaceBook','Twitter','Hi5');
  12.  
  13.     for(i=0; i < arraydosdim.length; i++) {
  14.         if(val == arraydosdim[i]) {
  15.             n = i;
  16.         }
  17.     }
  18.  
  19.  
  20. var j = 1;
  21.     for(i=0; i < arraydosdim2[n].length; i++) {
  22.         var selOpcion=new Option(arraydosdim2[n][i], arraydosdim2[n][i]);
  23.         eval(document.frm.sel2.options[j++]=selOpcion);
  24.  
  25.     }
  26.  
  27. }
  28. </script>
  29. </head>
  30. <body>
  31. <form name="frm">
  32. <select onchange="funcion(this.value);">
  33. <option value="">Selecciona Opción</option>
  34. <option value="MUSICA">MUSICA</option>
  35. <option value="VIDEOJUEGOS">VIDEOJUEGOS</option>
  36. <option value="BLOGS">BLOGS</option>
  37. <option value="REDES SOCIALES">REDES SOCIALES</option>
  38. </select>
  39.  
  40. <select name="sel2">
  41. <option value="">Selecciona Opción</option>
  42. </select>
  43. </form>
  44. </body>
  45. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 25/06/2010, 08:08
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
haber... e empezado de nuevo con el codigo que me espones pero debido a la poca experiencia que tengo te voy a ir poniendo aqui lo que voy haciendo en el codigo para que me vayas guiando:

Código PHP:
<?php
include('areaprivada/registro/config.php');
?>

<html>
<head>
<script type="text/javascript">
function funcion(val) {

<?php
$i
=1;
echo 
" var arraydosdim = new Array(' '";
$query1 mysql_query("SELECT * FROM industrias",$db_link);
while(list(
$id_industria,$industria)=mysql_fetch_row($query1)) {
echo 
", '$industria'";
$array_industria[$i] = $industria;
$i++;
}
echo 
");\n"

for(
$j=1$j<$i;$j++) {
$tempid $array_industria[$j];
$sele2 mysql_query("SELECT * FROM productos WHERE id_industria='$tempid'");
echo 
"var arraydosdim2[".$j."] = new Array (' '";
while(list(
$nombreproducto)=mysql_fetch_row($db_link)) {
echo 
", '$nombreproducto'";
}
echo 
");\n";

?>
 
    for(i=0; i < arraydosdim.length; i++) {
        if(val == arraydosdim[i]) {
            n = i;
        }
    }
 
 
var j = 1;
    for(i=0; i < arraydosdim2[n].length; i++) {
        var selOpcion=new Option(arraydosdim2[n][i], arraydosdim2[n][i]);
        eval(document.frm.sel2.options[j++]=selOpcion);
 
    }
 
}
</script>
</head>
<body>
<form name="frm">
<select onchange="funcion(this.value);">
<option value="">Selecciona Opción</option>
<option value="MUSICA">MUSICA</option>
<option value="VIDEOJUEGOS">VIDEOJUEGOS</option>
<option value="BLOGS">BLOGS</option>
<option value="REDES SOCIALES">REDES SOCIALES</option>
</select>
 
<select name="sel2">
<option value="">Selecciona Opción</option>
</select>
</form>
</body>
</html>
dime si voy bien :D

Hola amigos acabo de completar otro trozo de codigo pero ahora si que no se como seguir.. alguien que me eche una mano?

En el comentario anterior esta el codigo que tengo ahora mismo.

Última edición por GatorV; 25/06/2010 a las 12:43
  #4 (permalink)  
Antiguo 25/06/2010, 12:06
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: solicito ayuda para terminar un select dinamico

Hola

Hombre, es dar un poco palos de ciegos, por que no se lo que te trae las consultas, pero
la estructura que se te crea, parece correcta. Solo que cambiaría esto

Código PHP:
Ver original
  1. echo " var arraydosdim = new Array(' '";
  2. echo "var arraydosdim2[".$j."] = new Array (' '";

Yo no le daría un valor vacío al primer elemento

Código PHP:
Ver original
  1. echo " var arraydosdim = new Array(";
  2. echo "var arraydosdim2[".$j."] = new Array (";

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 25/06/2010, 12:42
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
Respuesta: solicito ayuda para terminar un select dinamico

oye sinceramente... no encuentro en mi codigo eso que dices en... :D ("Recuerda que el codigo que tengo es el ultimo que mostre no el primero")

Mira referente a la consulta ponle que seria algo asi:

Tabla "industrias" ---> campos --> id_industria y nombreindustria ponle que sea por ejemplo este el resultado = id_industria - 1 y nombreindustria - comida

Tabla "productos" --> campos --> id_industria, id_producto y nombreproducto y lo que quiero hacer es que muestre los productos que tengan el mismo id_industria ya que serian todos los relacionados a esa categoria.....

Espero no liarte mucho y me ayudes a completarlo, muchisimas gracias amigo.
  #6 (permalink)  
Antiguo 25/06/2010, 12:59
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: solicito ayuda para terminar un select dinamico

Cita:
Iniciado por Corianito Ver Mensaje
oye sinceramente... no encuentro en mi codigo eso que dices en... :D ("Recuerda que el codigo que tengo es el ultimo que mostre no el primero")
¿Qué no lo encuentras? ¿Lo has buscado?

Cita:
Iniciado por Corianito Ver Mensaje
Mira referente a la consulta ponle que seria algo asi:

Tabla "industrias" ---> campos --> id_industria y nombreindustria ponle que sea por ejemplo este el resultado = id_industria - 1 y nombreindustria - comida

Tabla "productos" --> campos --> id_industria, id_producto y nombreproducto y lo que quiero hacer es que muestre los productos que tengan el mismo id_industria ya que serian todos los relacionados a esa categoria.....

Espero no liarte mucho y me ayudes a completarlo, muchisimas gracias amigo.
En el ejemplo que te pasé, si escoges MUSICA, en el primer combo, en el segundo las opciones serán Heavy Metal, Rock and Roll, Trash Metal

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 25/06/2010, 13:01
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: solicito ayuda para terminar un select dinamico

Aqui hay algo que quiza te pueda servir:

http://www.forosdelweb.com/f18/combo...8/#post3457902

Es algo muy basico pero que te puede servir de apoyo, y costruir algo desde la base.

Hasta poder reutilizar algun codigo preconstruido.

Etiquetas: dinamico, select, terminar
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 02:34.