Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > HTML, Javascript y otros
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 26-01-2007
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 24
kayetano Va por buen camino
Hola

A primera vista tu código no me parece muy claro, me da la sensación que estas confundiendo variables PHP con variables JAVASCRITP. Igualmente realizas procesos algo liados.

Yo he realizado este proceso de vez en cuando para relacionar poblaciones y provincias, te pongo un ejemplo:
FORMULARIO
Código PHP:
Provincia<br> 
<select name="idprovincia" onchange="cambiaPoblacion(this.value, this.form.F_idpoblacion )">
    <option value="0">- Seleccione -</option>
<?
    $qProvincia 
mysql_query "SELECT * FROM poblacion WHERE idprovincia = 0 ORDER BY nombre" ) or die (mysql_error());
    while ( 
$rProvincia mysql_fetch_array $qProvincia ) ) {
?>
        <option value="<?=$rProvincia["id"]?>"><?=$rProvincia["nombre"]?></option>
<?        }    ?>
</select>

Poblaci&oacute;n<br>
<select name="F_idpoblacion" disabled>
    <option value="0">- Seleccione -</option>
</select>
Utilizo la misma tabla para guardar las poblaciones y las provincias, la estructura sería algo asin:
id - Clave primaria
nombre - nombre de la poblacion o provincia
idprovincia - clave ajena que apunta a la misma tabla, una provincia simpre tendra este campo a 0, una población tendrá el id de la provincia.

Más cosas, con la estructura del while(... mysql_fetch_array() ) te ahorras mucho código.

Ahora nos queda el código javascript:
CODIGO JAVASCRIPT
Código PHP:
<script language="javascript" type="text/javascript">
    var arrayPoblacion = Array();
<?
    $poblacionActiva 
"";
    
$qPoblacion mysql_query"SELECT * FROM poblacion WHERE idprovincia > 0 ORDER BY idprovincia, nombre" );
    while( 
$rPoblacion mysql_fetch_array$qPoblacion ) ) {
        if( 
$poblacionActiva !=  $rPoblacion["idprovincia"] ) {
            
$poblacionActiva $rPoblacion["idprovincia"];
            echo 
"\tarrayPoblacion[$poblacionActiva] = Array();\n";
            
$x 1;
        }
        echo 
"\tarrayPoblacion[$poblacionActiva][".$x++."] = new Option('".$rPoblacion["nombre"]."', "$rPoblacion["id"] ." );\n";
    }
    
?>

    function cambiaPoblacion(provincia, poblacion ) {
       if( provincia > 0 ) {
          poblacion.disabled = false;
          poblacion.length = 1;
          for ( x in arrayPoblacion[provincia] )
              poblacion.options[x] = arrayPoblacion[provincia][x];
       } else {
          poblacion.length = 1;
          poblacion.disabled = true;
       }
    }
</script>
Lo que hago es generar un array con todos los posibles valores relacionando provincias y poblaciones, cuando el primer desplegable cambia pues simplemente borro el secundo desplegable y lo recargo con los nuevos valores asociados.

Hoy por hoy te dirán que lo hagas con AJAX, todo se arregla con AJAX, pero yo he utilizado este script durante mucho tiempo y me a funcionado muy bien.

Eso si no te aconsejo este script en caso de tener que asociar grandes cantidades de datos (miles o millones), en esos casos no respondo de su funcionamiento ni de los requisitos de memoria.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente

Última edición por kayetano fecha: 26-01-2007 a las 10:12:38.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
combos BoNnY0301 OOP 5 06-05-2006 09:07:30
combos enlazados con mysql camc79 PHP 4 18-02-2005 15:09:32
combos con mas de un campo mar65 Conexión con bases de datos 3 14-01-2005 21:16:50
Problemas con los combos vetustas Conexión con bases de datos 3 31-10-2003 00:21:58
cargar tabla en varios combos Delphos Conexión con bases de datos 2 04-10-2003 19:09:11


La franja horaria es GMT +2. Ahora son las 21:06:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi