Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/05/2005, 07:09
hemiliano
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años, 7 meses
Puntos: 1
Exclamación Desafio Javascript+PHP Groso!

Buena muchachos.
Bueno, primero les doy un tip para solucionar algo que muchos se preguntan y la verdad que muchas veces no está bien explicado y luego la pregunta que no se como resolver.
Las select dependientes o listas enlazadas con una base de datos de PHP siempre fueron utiles y no siempre está claro como hacerlas, les paso el código:
Código PHP:

<?
    
echo "<script>\n";
    echo 
"var peliculas = new Array;\n";
    echo 
"var peliculas_val = new Array;\n";
    
    
$query "SELECT id FROM Categorias ORDER BY nombre ASC" ;
    
//$getRubros = hyt_query($query);
    //$cantRubros = hyt_numrows($getRubros);
    
$rsGeneros $Conn->Retrieve($query);
    
$cantGeneros $rsGeneros->NumRows();
    
    echo 
"peliculas[0] = ['Peliculas'];\n";
    echo 
"peliculas_val[0] = [''];\n";
    
    
$i 1;
    while (!
$rsGeneros->EOF()){
//    for($i=1; $i<$cantGeneros; $i++){
        
$query "SELECT * FROM Peliculas WHERE categoria1 = ".$rsGeneros->Fields("id")." OR categoria2 = ".$rsGeneros->Fields("id")." OR categoria3 = ".$rsGeneros->Fields("id");
//        $query = "SELECT * FROM Peliculas WHERE categoria1 = ".mysql_result($rsRubros, ($i-1), 0);
//        $query = "SELECT * FROM subrubros WHERE id_rubro = ".mysql_result($getRubros, ($i-1), 0) . " ORDER BY nombre";
//        $getSubrubros = hyt_query($query);    
        
$rsPeliculas $Conn->Retrieve($query);
        
$txt "";
        
$txt_val "";
        while(!
$rsPeliculas->EOF()){
            
$txt $txt",'"$rsPeliculas->Fields("nombre")."'";
            
$txt_val $txt_val ",'"$rsPeliculas->Fields("id")."'";
            
$rsPeliculas->MoveNext();
        }
        echo 
"peliculas[$i] = ['Seleccione la Película'".$txt."];\n";
        echo 
"peliculas_val[$i] = [''".$txt_val."];\n";
        
        
$i++;
        
$rsGeneros->MoveNext();
    }
    echo 
"</script>\n";
Basicamente lo que hago es imprimir los datos, pero con formato de JAVASCRIPT!
Y luego, claro, la funcion en javascript:

Código PHP:
<script>

function 
ponCombo(formu){    
    var 
elConti formu.genero1.selectedIndex;
    for (
j=1j<5j++){
        
peliculaString "formu.pel" "gen1";
        
pelicula = eval(peliculaString);
        
pelicula.length peliculas[elConti].length;
        
//formu.pel1gen1.length = peliculas[elConti].length;
        
for (i=0i<peliculas[elConti].lengthi++){    
            
pelicula.options[i].text peliculas[elConti][i];
            
pelicula.options[i].value peliculas_val[elConti][i];
        }
    }

y luego en los select:

Código PHP:

<select name="genero1" class="texto" id="genero1" onChange="ponCombo(this.form)" onBlur="ponCombo(this.form)" on>
                                                          <option value="">Seleccione el Genero</option>
                                                          <?    
                                                            
while(!$rs->EOF()){
                                                                if ( 
strlen($rs->Fields("nombre")) >50 ): 
                                                                    
$nom substr($rs->Fields("nombre"),0,50)." ...";
                                                                else:
                                                                    
$nom $rs->Fields("nombre");
                                                                endif;
                                                            
?>
                                                          <option value="<?=$rs->Fields("id")?><? if($generoUno==$rs->Fields("id")) { $selected "yes"; echo 'selected'; } ?>>
                                                          <?=$nom?>
                                                          </option>
                                                          <?    
                                                            $rs
->MoveNext();
                                                            }    
                                                            
?>
                                                        </select>


<select name="pel<?=$i?>gen1" class="selectGeneros">
                                                          <option value="">Seleccione una Película</option>
                                                        </select>
Y listo!!!

Ahora, el problema es, esto (en mi caso) se guarda en una base de datos.
Lo que quiero hacer es que cada vez que entro en esta página se fije en la base de datos cual es el genero que guardado y me liste las películas de ese genero. No que tenga que elegir el genero, sino que se fije en la base de datos.
Y no solo eso sino que también me quede seleccionada la película (segundo select) que está en la base de datos.

Se me re complicó y no se como hacerlo, esto es por mi falta de conocimiento de javascript.
Alguien me puede dar una mano?.
__________________
:serio: :adios: