Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/05/2008, 04:29
miSko
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Problema con <select> al recargar página

Dime si te va esto, y si no te va, y te tira algun error, dimelo e intento arreglarlo.

Si te tira, ya le metes lo q necesitas:

Código PHP:


<?php

// TODO EL CODIGO QUE CONECTA A LA SQL

$arrayMarcas = array() ;

$qry mysql_query("Select Distinct Marca from modelos order by Marca ASC") ;

while (
$res mysql_fetch_array($qry))
{
    
$arrayMarcas[count($arrayMarcas)] = $res[0] ;
}

$arrayModelos = array() ;

foreach (
$arrayMarcas as $marca)
{
    
    
$qry mysql_query("Select modelo from modelos where marca='$marca' order by modelo ASC") ;
    
    while (
$res mysql_fetch_array($qry))
    {
        if (!
$arrayModelos[$marca])
        
$arrayModelos[$marca] = array() ;
        
        
$numRegistro count($arrayModelos[$marca]) ;
        
        
$arrayModelos[$marca][$numRegistro] = $res[0] ;
        
    }
    
}

// A partir de Aqui tendrias todos los datos recuperados de la base de datos, es decir, en $arrayMarcas, todas las marcas,
// y en arrayModelos, todos los modelos indexados por marca, es decir $arraModelos['Audi'] es un array
// de todos los Modelos Audi que tienes en la base de datos.

// Voy a Pasar todos los Datos a JavaScript y para ello, voy a crear los mismos arrays, pero en javascript

$lineaArrayMarcas "" ;

foreach (
$arrayMarcas as $marca)
{
    if (
$lineaArrayMarcas == "")
    
$lineaArrayMarcas .= "'".$marca."'" ;
    else
    
$lineaArrayMarcas .= ",'".$marca."'" ;
    
}

$lineaArrayMarcas "var arrayMarcas = array(" .$lineaArrayMarcas.") ; " ;

// con esto obtendriamos la variable $lineaArrayMarcas con este valor: var arrayMarchas = array('fiat','seat','audi')  etc...

$lineaArrayModelos "" ;

foreach (
$arrayMarcas as $marca)
{
    if (
$lineaArrayModelos == "")
    
$lineaArrayModelos "var arrayModelos['$marca'] = array(" ;
    else
    
$lineaArrayModelos .= "var arrayModelos['$marca'] = array(" ;
    
    
$modelos "" ;
    
    foreach (
$arrayModelos[$marca] as $modelo)
    {
        if (
$modelos == "")
        
$modelos "'".$modelo."'" ;
        else
        
$modelos ",'".$modelo."'" ;
    }
    
    
$lineaArrayModelos .= $modelos .") ; " ;
}

// Esto obtendrias 1 linea por cada Marca, y en cada linea este codigo : var arrayModelos['Audi'] = array('A3','A4','A5')  etc..

// Entonces ahora para crear nuestros arrays en javaScript seria :

echo '<script>' ;
    echo 
$lineaArrayMarcas ;
    echo 
$lineaArrayModelos ;
echo 
'</script>' ;
?>
<html>
    <head>
        <title>Cosas de Cochecitos</title>
        
        <script>
            
            function rellenarSelectMarcas()
            {
                var i=0 ;
                var cod = '<select id="marca" name="marca" onChange="rellenaModelos()" onClick="rellenaModelos()" onKeyPress="rellenaModelos()">' ;
                    while (i < arrayMarcas.length)
                    {
                        cod += '<option value="' + arrayMarcas[i] + '">' + arrayMarcas[i] + '</option>' ;
                        i++ ;
                    }
                    
                cod += '</select>' ;
                document.getElementById('MARCAS').innerHTML = cod ;
            }
            
            function rellenaModelos()
            {
                var marcaElegida = document.getElementByid('marca').value ;
                
                var i=0 ;
                var cod = '<select id="modelo" name="modelo">' ;
                    while (i < arrayModelos[marcaElegida].length)
                    {
                        cod += '<option value="' + arrayModelos[marcaElegida][i] + '">' + arrayModelos[marcaElegida][i] + '</option>' ;
                        i++ ;
                    }
                    
                cod += '</select>' ;
                document.getElementById('MODELOS').innerHTML = cod ;
                
            }
        </script>
    </head>
    <body>
        
        <div id="MARCAS"></div>
        <div id="MODELOS"></div>
        
        <table width="100%" border="0" cellspacing="0" cellpadding="0" class="TextoNegro">
            <tr>
                <td align="center" colspan=2>Editar Modelo</td>
            </tr>
            <tr>
                <td id="MARCAS"></td>
                <td id="MODELOS"></td>
            </tr>
        </table>
    </body>
</html>
__________________
» Presupuesto Pagina Web