combobox en html

c0ng0

el tema es que estamos creando una pagina web unos compañeros y yo para una empresa de compraventa de coches, el dueño nos ha dicho que lo que mas le interesa es que tenga un buen buscador.

el problema nos surge cuando queremos que en un combobox "modelos" queremos que nos cargue los modelos segun la "marca" del coche que previamente hemos seleccionado en otro combobox.

la solucion sencilla que hemos encontrado es sustituir el combobox modelo por un campo de texto donde el usuario meteria el modelo a mano, pero es bastante cutre... y ya que la pagina se centra en el buscador queremos hacerlo bien.

con visual basic seria super sencillo ya que funciona todo mediante eventos, pero en html no conocemos nada parecido a eso, asi que suponemos que sea mediante javascrip del cual no tenemos ni idea ninguno de mis compañeros o yo.

por eso os pedimos un poquito de ayuda alos "seniors" para ver si podeis aportar algun manual o algun scrip que se parezca alo que pedimos

gracias de antemano

erdanblo

http://en.wikipedia.org/wiki/JavaScript

B

Si no tienes conocimientos de javascript puedes decirle al cliente directamente que no estais cualificados para el trabajo que solicitan.

Ésto en cualquier trabajo seria lo razonable(mecánica,etc), pero en informática me caerá mierda por lo dicho.

Javascript y método onChange del combo

c0ng0

gracias :)

le hemos estado exando un vistazo a jquerry y puede ser una solucion.

algo asi: http://remysharp.com/wp-content/uploads/2007/09/select-chain.php

NeB1

#4 jquery es el mejor framework de javascript que existe, te lo digo por experiencia.

Te digo como lo haría yo?

tendría un archivo .php con los datos de la marca relacionados con el modelo, y haría una función javascript del rollo:

FUNCION JAVASCRIPT:

function recargarModelos(){
    data= new Object();
    //Guardamos el valor de la marca  seleccionada en un objeto
    data['marca']=$("#idSelectMarca").val();
    //Eliminamos las opciones que ya hayan cargado dentro del combo del modelo (si han seleccionado  
//una marca y despues seleccionan otra por ejemplo) $("#idSelectModelo").find('option').remove(); //Realizamos la consulta al fichero.php, utilizamos el estandar JSON que nos permitirá //Trabajar con la respuesta como si fuera un objeto $.post('archivoConLosModelos.php', data, function( modelos ){ //Comprobamos que nos ha devuelto correctamente los valores if(modelos instanceof Object){ //Recorremos cada respuesta, y añadimos un <option> al <select> correspondiente a //modelos $.each(modelos, function(key,value){ $("#idSelectModelo").append('<option value='+value['modeloId']+'>'+value['modelo']+'</option>'); }); } }, "json"); }

y el fichero .php debería ser algo así:

ARCHIVOCONLOSMODELOS.PHP:

<?php
$respuesta=array();

switch($_POST['marca']){
    case "seat":
        $respuesta[0]['modeloId']=1;
        $respuesta[0]['modelo']="Ibiza";
        $respuesta[1]['modeloId']=2;
        $respuesta[1]['modelo']="Leon";
        $respuesta[2]['modeloId']=3;
        $respuesta[2]['modelo']="Altea XL";      
break; case "ford": $respuesta[0]['modeloId']=1; $respuesta[0]['modelo']="KA"; $respuesta[1]['modeloId']=2; $respuesta[1]['modelo']="Fiesta"; $respuesta[2]['modeloId']=3; $respuesta[2]['modelo']="Focus";
breal; //etc. } echo json_encode($respuesta); ?>

No lo he probado, pero creo que de ahí podeis sacar la idea.

Pd: Si lo haceis así, instalaros el firebug para el firefox, así podreis ver en cada momento, que datos devuelve el archivo PHP para saber donde está el error, ya que es una llamada Ajax.

Pd2: Acabo de mirar tu enlace, es simplemente una librería que hace lo que yo he dicho con una función propia. Pero vamos, que es lo mismo.

c0ng0

gracias de nuevo, lo que estamos buscando son ideas, la forma de llevarlas acabo ya son cosa nuestra, si no tenemos ni idea de JS aprenderemos al menos lo basico para salir del paso.

mis compañeros y yo no nos dedicamos profesionalmente ni mucho menos al diseño web, todavia estamos estudiando y queremos crear un abito de trabajo en equipo, y con estas cosillas vamos distribuyendo trabajos etc y profesionalizandonos un poquito :)

asi que gracias otra vez por la ayuda prestada porque nos sirve para salir del paso aora mismo y apra aprender de cara a un futuro profesional

C

La solución buena sería usar ajax y una base de datos...

Y por framework, puedes usar cientos para mi gusto yo usaría EXTjs para combos y presentación de datos.

Y si quieres añadirle animaciones y efectos chorras dojo o scriptilous ( o algo así :P)

Si necesitas un IDE de desarrollo te aconsejo Aptana.

un saludo

Kenny

Yo creo que tambien tiraria por algo como lo que comenta #7 y jugar con una buena base de datos...

eXtreM3

#1 lo que buscas es esto:

http://www.drbizarre.net/tester/selects/index.html

AJAX ;), tuve que hacer algo parecido hace menos de una semana... y me fue de lujo. Alguna complicación que otra a la hora de implementarlo... pero todo bien ^^

http://www.programacionweb.net/foros/mensaje/?num=2212

http://empacarino.blogspot.com/2005/12/combos-anidados-parte-ii-php-y-ajax.html

Busca por ahí, ahora mismo no encuentro el enlace exacto del tuto que pillé yo, pero buscando eso que te he dixo lo sacas seguro ;)

NeB1

#9 para trabajar con ajax, te recomiendo usar jquery como he hecho en #5. Es una pasada.

eXtreM3

#10 +1+1, jQuery es una pasada ^^

sutEz

php > all.

Dod-Evers

#12 no conoces Java no?

BLZKZ

#13 que tiene que ver js con java con php? -.-

sutEz

#13 Si dices "JavaScript", algo sé; pero me es menos lioso php

Elektr0_ddr

Menudo cacao maravillao de lenguajes que tiene la peña por aquí jaja
Podríamos decir que php sería el equivalente a Java en este caso (no estoy comparando php con java, simplemente por el echo de estar en el lado del servidor) y javascript sería el lenguaje que se encontraría en el lado del cliente, mediante el cual puedes hacer una llamada AJAX al servidor de manera asíncrona para que te devuelva en JSON,XML o el formato que quieras, los datos para rellenar el 2º combobox.

Olé!

#15 Solo mediante php no vas a poder hacer que el 2º combobox cambie dinámicamente sin recargar la página, a no ser que te traigas todos los modelos de todas las marcas de la base de datos, cosa no muy recomendable si tenemos en cuenta la cantidad de modelos de coches que existen xD

NeB1

#16 solo te falta añadir, que realmente java y php no tienen nada que ver, sería más bien jsp :P era por tocar las narices xD

Usuarios habituales