Foros del Web » Programando para Internet » PHP »

Combo Combinado

Estas en el tema de Combo Combinado en el foro de PHP en Foros del Web. hola, como dice el titulo tengo 2 combos que quiero que el 2º cambie dependiendo del que elija el 1º, osea si escojo pais en ...
  #1 (permalink)  
Antiguo 03/05/2005, 11:05
 
Fecha de Ingreso: febrero-2005
Ubicación: chile, Santiasko
Mensajes: 728
Antigüedad: 19 años, 1 mes
Puntos: 1
Combo Combinado

hola, como dice el titulo tengo 2 combos que quiero que el 2º cambie dependiendo del que elija el 1º, osea si escojo pais en el combo 2 me salga las ciudades...

tengo este combo que hizo Cluster http://www.forosdelweb.com/f18/faqs-php-530600-post664999/

pero no tengo idea que modificar, ni siquiera me carga los combos de mi base de datos en mysql....

esta base de datos tiene como sale codcategoria, nombre, nivel y una categoria padre....



lo que quiero que, en el combo 1 cargue HISTORIA - ARTE y en el combo 2 cargue -> chilena, universal, latinoamericana, etc... hasta que se cumpla sus datos que ya estan en la base de datos....

que tengo que modificar en el codigo de cluster...??? para que me cargue los combos y se diferencien del nivel... ya que el nivel 0 es el padre y el 1 es el hijo...

porfavor ayudenme.......


salu2
__________________
Una Vez Muerto el Perro.............Se acaba la Rabia :risa:
  #2 (permalink)  
Antiguo 03/05/2005, 12:31
 
Fecha de Ingreso: febrero-2005
Ubicación: chile, Santiasko
Mensajes: 728
Antigüedad: 19 años, 1 mes
Puntos: 1
nadie..........

me podrian ayudar........


porfavor.....


salu2
__________________
Una Vez Muerto el Perro.............Se acaba la Rabia :risa:
  #3 (permalink)  
Antiguo 03/05/2005, 15:20
 
Fecha de Ingreso: febrero-2005
Ubicación: chile, Santiasko
Mensajes: 728
Antigüedad: 19 años, 1 mes
Puntos: 1




bueno, lo intentamos nuevamente......



salu2
__________________
Una Vez Muerto el Perro.............Se acaba la Rabia :risa:
  #4 (permalink)  
Antiguo 05/05/2005, 08:15
 
Fecha de Ingreso: febrero-2005
Ubicación: chile, Santiasko
Mensajes: 728
Antigüedad: 19 años, 1 mes
Puntos: 1
hola, en estos momentos tengo esto y me carga bien...
Código PHP:
function LstCategoriaHTML($id='lst_clasificacion',$categoria=''){
$opciones='';
$db=conexion();
$sel='<select name="cb_categoria" id="cb_categoria" class="seleccion">';
$sql="SELECT codcategoria, nombre FROM categoria WHERE nivel=0 ORDER BY nombre";
$rs=$db->Execute($sql);
if (!
$rs) {
$opciones='';
} else {
while(!
$rs->EOF){
$codcat=$rs->fields("codcategoria");
if(
$categoria==$codcat){
$opciones.='<option value="'.$codcat.'" selected>'.$rs->fields("nombre").'</option>';
} else {
$opciones.='<option value="'.$codcat.'">'.$rs->fields("nombre").'</option>';
}
$rs->MoveNext();
}
}
$html='<select name="'.$id.'" size="10" id="'.$id.'" class="listado" Onclick="this.form.submit();">';
$html.=$opciones.'</select>';
return 
$html;

pero esta la subcategoria no me funciona:
Código PHP:
function LstSubCategoriaHTML($categoria='0'$id='lst_subcategoria'){
$opciones='';
$db=conexion();
$sel='<select name="cb_subcategoria" id="cb_subcategoria" class="seleccion">';
$sql="SELECT nombre, codcategoria FROM categoria WHERE nivel=1 and codcategoria='".$codcategoria."' ORDER BY nombre";
$rs=$db->Execute($sql);
if (!
$rs) {
$opciones='';
} else {
while(!
$rs->EOF){
$codcat=$rs->fields("codcategoria");
$opciones.='<option value="'.$codcat.'">'.$rs->fields("nombre").'</option>';
$rs->MoveNext();
}
}
$html='<select name="'.$id.'" size="10" id="'.$id.'" class="listado">';
$html.=$opciones.'</select>';
return 
$html;

que estoy hasiendo mal.... que deberia hacer...???



salu2
__________________
Una Vez Muerto el Perro.............Se acaba la Rabia :risa:
  #5 (permalink)  
Antiguo 05/05/2005, 09:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
El ejemplo de la FAQ no usa ese modelo de datos (con un "id_padre" o categoria_padre (que deberías usar los ID's de tu tabla para optimizar .. no un dato redundante que ya tienes en otro campo) que denominas tu ..) en estrutura gerárquida .. Si te fijas usa un par de tablas y las relaciona.

En tu caso particular (olvidemos ya que "usas esa FAQ por qué ya no es así" ni por asomo) .. no sé si tu consulta SQL que obtiene las "sub-categorías" está entregando bien sus resultados.. Confirmalo (ejecutando esa cosulta SQL en tu administrador de BD).

Otro detalle .. en tu función: LstSubCategoriaHTML() .. usas dentro de ella unas variables como: $codcategoria que no se vé que definas como global en la función o la pases como parámetro ... O será que te equivocastes en el nombre de las variables?

Un saludo,
  #6 (permalink)  
Antiguo 05/05/2005, 09:48
 
Fecha de Ingreso: febrero-2005
Ubicación: chile, Santiasko
Mensajes: 728
Antigüedad: 19 años, 1 mes
Puntos: 1
hola cluster, te comento que ya me funciona....

pero el unico problema es que el combo de adecua al contenido.. y quiero que me salga del mismo porte que el padre, nose si me entienden...

en todo caso me funciona aqui dejo las funciones:
Código PHP:
function LstCategoriaHTML($categoria='',$id='lst_clasificacion'){
$opciones='';
$db=conexion();
$sql="SELECT codcategoria, nombre FROM categoria WHERE nivel=0 ORDER BY nombre";
$rs=$db->Execute($sql);
if (!
$rs) {
$opciones='';
} else {
while(!
$rs->EOF){
$codcat=$rs->fields("codcategoria");
if(
$categoria==$codcat){
$opciones.='<option value="'.$codcat.'" selected>'.$rs->fields("nombre").'</option>';
} else {
$opciones.='<option value="'.$codcat.'">'.$rs->fields("nombre").'</option>';
}
$rs->MoveNext();
}
}
$html='<select name="'.$id.'" size="10" id="'.$id.'" class="listado" onChange="this.form.submit();">';
$html.=$opciones.'</select>';
return 
$html;


function 
LstSubCategoriaHTML($codcategoria='0'$id='lst_subcategoria'){
$opciones='';
$db=conexion();
$sql="SELECT nombre, codcategoria FROM categoria WHERE nivel=1 and categoriapadre='".$codcategoria."' ORDER BY nombre";
$rs=$db->Execute($sql);
if (!
$rs) {
$opciones='';
} else {
while(!
$rs->EOF){
$codcat=$rs->fields("codcategoria");
$opciones.='<option value="'.$codcat.'">'.$rs->fields("nombre").'</option>';
$rs->MoveNext();
}
}
$html='<select name="'.$id.'" size="10" id="'.$id.'" class="listado">';
$html.=$opciones.'</select>';
return 
$html;

y el html
Código HTML:
<?php
include('karpedia.inc.php');
?>

<html>
<head>

<title>Estado</title>

<style type="text/css">
<!--
.style1 {font-weight: bold}
-->
</style>
</head>
<body>
<form name="form1" method="post" action="seleccion.php">
  <p align="center" class="style1">Datos Basicos</p>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td width="12%" class="labeltop"><strong>Categoria:</strong></td>
      <td width="88%"><?php echo LstCategoriaHTML($categoria); ?></td></tr>
	  <tr>
      <td class="labeltop"><strong>Subcategoria:</strong></td>
      <td><?php 
	  $categoriapadre=$_POST['lst_clasificacion'];
	  //echo $categoriapadre;
	  echo LstSubCategoriaHTML($categoriapadre); ?></td>
    </tr>
	</table>
	</form>
	</body>
	</html> 
el problema era que no estaba resibiendo nada del combo principal y por eso no cargaba nada... ojala que alguien le sirva.......

salu2
__________________
Una Vez Muerto el Perro.............Se acaba la Rabia :risa:
  #7 (permalink)  
Antiguo 05/05/2005, 10:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Pues no te entendí .. ya que andas haciendo capturas de pantallas podrías "dibujar un ejemplo" y nos indicas lo que tienes ..

Pero .. en principio lo que comentas ya parece tema de HTML/CSS para ajustar como se "vé" visualmente .. aunque tal vez "rellenado" de ¿saltos de línea? (\n .. etc) se podría conseguir el efecto deseado? ...

Un saludo,
  #8 (permalink)  
Antiguo 05/05/2005, 10:49
 
Fecha de Ingreso: febrero-2005
Ubicación: chile, Santiasko
Mensajes: 728
Antigüedad: 19 años, 1 mes
Puntos: 1
quiero que la subcategoria sea del mismo tamaño que el de arriba...

http://img259.echo.cx/img259/7660/dibujo7qb.jpg


ojala me ayudes oh me digas como debo preguntar en el foro de html...


salu2
__________________
Una Vez Muerto el Perro.............Se acaba la Rabia :risa:
  #9 (permalink)  
Antiguo 05/05/2005, 11:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
ahhh (ves .. viendo las cosas se entiende la gente) ..

En principio ese "size="10" es lo que define ese alto .. (de HTML) .. pero sería bueno que tomases el código HTML generado (en tu navegador->ver código fuente) (incluido ese "CSS" que usas por si acaso) y preguntes en el foro de HTML para ver que sucede.

Otro detalle .. eso de:
name="'.$id.'" (en el <select>) para que lo usas? .. generas multiples de esos select en una página? ..

Un saludo,
  #10 (permalink)  
Antiguo 05/05/2005, 13:06
 
Fecha de Ingreso: febrero-2005
Ubicación: chile, Santiasko
Mensajes: 728
Antigüedad: 19 años, 1 mes
Puntos: 1
hola cumpa.....

le cuento de inmediato que ese name = '$id' es el nombre de lo que tomo del combo de arriba, es como el post...

y solo genero la llamada del id solamente.... como viste en la imagen...


salu2 y gracias por aclarar algunas cosillas, en verdad no soy un experto, pero por suerte tengo un buen jefe que sabe arto........

salu2
__________________
Una Vez Muerto el Perro.............Se acaba la Rabia :risa:
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 18:03.