Foros del Web » Programando para Internet » Javascript »

Desafio Javascript+PHP Groso!

Estas en el tema de Desafio Javascript+PHP Groso! en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 10/05/2005, 07:09
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
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:
  #2 (permalink)  
Antiguo 11/05/2005, 01:07
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
... Según entiendo, creas tus combobox de datos que están en tu Base de Datos... pero tu pregunta es cómo enlistar un dato que está en tiu Base de Datos.. ¿pués no todos los extraes de ahí? ... perdón, no capto.

... Como sea, creo la pregunta iría enfocada a PHP ya que te estarías "metiendo" con el tema de Base de Datos.. esto queda fuera de JavaScript.

Y que bueno que aportes tu script. Ya que estás tan generoso podrías incluir la estructura de tu tabla para que quede más claro... y un ejemplo para verlo trabajando estaría genial .

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 13/05/2005, 06:18
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Los datos los extraigo de la base de datos y con eso no hay problema.
El tema es lograr que el java (si, si, entrelazado con PHP claro) logre marcar como 'selected' al que yo tengo en la base de datos guardado.
Claro que esto es una interacción con PHP por que de hecho de ahí saco los datos, pero TODO tengo que imprimirlo en formato JavaScript por que si no no funciona nada.
La idea es, por supuesto, nunca recargar la página, sino no estaría en este punto, claro.
Se entiende?. Alguien sabe algo más de esto?.

P.D.: ejemplos lamentablemente no te puedo dar (es el laburo para un cliente).
La estructura no es dificil, se puede deducir del ejemplo, es:

CATEGORIAS
id
nombre

PELICULAS
id
nombre
categoria1
categoria2
categoria3

Listo!
Bien?
__________________
:serio: :adios:
  #4 (permalink)  
Antiguo 14/05/2005, 22:39
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Cita:
Iniciado por hemiliano
El tema es lograr que el java (si, si, entrelazado con PHP claro) logre marcar como 'selected' al que yo tengo en la base de datos guardado.
Claro que esto es una interacción con PHP por que de hecho de ahí saco los datos, pero TODO tengo que imprimirlo en formato JavaScript por que si no no funciona nada.
Tú lo haz dicho.. PHP no controla el funcionamiento de JavaScript, es recomendable trabajarlos por separado, hacer funcionar tu función JavaScript de una forma estática, luego simplemente imprimir lo que quieres generar para que la estructura sea la misma a lo que ya tienes funcionando...
Cita:
La idea es, por supuesto, nunca recargar la página, sino no estaría en este punto, claro.
Se entiende?. Alguien sabe algo más de esto?.
Para lograr ese efecto necesitas una tecnología como JSRS ó AJAX... buscalas en el foro de PHP.

Perdóna... realmente (yo) no entiendo lo que buscas... solo resondo por tus palabras.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 12:16.