Foros del Web » Programando para Internet » Javascript » Frameworks JS »

mostrar listado <option> de una base de datos

Estas en el tema de mostrar listado <option> de una base de datos en el foro de Frameworks JS en Foros del Web. buenas.. espero pudean ayudarme con un codigo que no conozco... lo estaba intentando, sin saber que no daba resultado es lo siguiente... <script type="text/javascript"> var ...
  #1 (permalink)  
Antiguo 14/01/2010, 09:50
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 16 años, 2 meses
Puntos: 5
mostrar listado <option> de una base de datos

buenas.. espero pudean ayudarme con un codigo que no conozco... lo estaba intentando, sin saber que no daba resultado es lo siguiente...

<script type="text/javascript">
var teveo = null;
var teveodos = null;
var formus = [null, 'TD', 'TC', 'FID', 'CTA'];

function muestra(formulario) {
if (teveo != null)
document.getElementById(teveo).style.display = 'none';
if (formus[formulario] != null)
document.getElementById(formus[formulario]).style. display = 'block';
teveo = formus[formulario]
}
function muestrados(formulariodos) {
if (teveodos != null)
document.getElementById(teveodos).style.display = 'none';
if (formus[formulariodos] != null)
document.getElementById(formusdos[formulariodos]). style. display = 'block';
teveodos = formusdos[formulariodos]
}

</script>
<?php
echo
"<form>
<select name='primero' id='nuevo' onchange='muestra(this.selectedIndex);'>
<option value='0'>Seleccione un producto</option>
<option value='1'>autos</option>
<option value='2'>camiones</option>
<option value='3'>camionetas</option>
<option value='4'>motos</option>
</select>
</form>";



$rs=mysql_query("SELECT * FROM marcautos") or die("no selecciona marca");
echo "<form action='' method='post' name='form1' id='TD' style='display:none;'>" ;
echo "<select name='marca' onchange='muestrados(this.selectedIndex);'><option value=''>Elige Marca</option>";
while($row=mysql_fetch_array($rs)) echo "<option value='".$row['marcas']."'>".$row['marcas']."</option>";
echo "</select>
</form>" ;

mi idea era desde un select (auto,camionetas,camiones,motos) <option> realizar una consulta a una db de mysql .. (veiculos) y esta devolveria en un <option> estos mismo.. osea <option>auto </option><option>camionetas </option><option>camiones </option><option>motos </option> la consulta seria asi como $row=mysql_query("select * from veiculos") al realizarse esto y elegir el veiculo. se mostraria otro option, que mostraria todas las marcas corespondientes a esa seleccion.. en caso de seleccionar autos mostraria todas las marcas correspondientes.. y alli al seleccionar una de las marcas. se lanza una consulta $row=mysql_query("select * from marcas WHERE marca='$seleccion' ") y se mostrarian todas las marcas... y por ultimo otro select que mostraria todos los modelos correspondiente a la marca elegida y la categoria... osea si eligio auto,peugeot se lanzaria otra consulta que devolveria entre options tambien todos los modelos.. algo como , $row=mysql_query("select * from modelos where marca=$seleccion") y listo un boton submit que envie la consulta a un php...... con variables... veiculo,marca,modelo.. mandando las variables yo soy programador php desde alli no tengo problema... el hecho es que quiero realizar esto para la pagina de fin de carrara. para que quede mejor. y me darian una gran mano.. ya que estaba intentando realizarlo con javascript sin saber que no se podia... muchas gracias a todos desde ya
  #2 (permalink)  
Antiguo 14/01/2010, 11:35
 
Fecha de Ingreso: noviembre-2008
Mensajes: 24
Antigüedad: 16 años
Puntos: 0
Respuesta: mostrar listado <option> de una base de datos

Te dejo un enlace a un curso en el que uno de los ejercicios propuestos es clavado a lo que tú quieres.
http://www.librosweb.es/ajax/capitulo8.html
Mírate el ejercicio 17, viene con su solución y todo. Ahí no utiliza bases de datos, pero si eres programador PHP no tendrás problema en adaptar esa parte.

Un saludo.
  #3 (permalink)  
Antiguo 14/01/2010, 15:53
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: mostrar listado <option> de una base de datos

mil gracias es verdad es lo que estaba buscando.. pero a decir verdad. si se me complico para adaptarlo. ya que al no conocer el codigo ajax no encuentro la forma de pasar la variable desde el query al ajax... dejo aqui como lo muestra.. si alguien se anima a explicarme como adaptarlo les agradezco.. por lo que veo lo que me esta complicando es que no solo toma el nombre sino un codigo. y ese codigo creo que es lo que me da problemas por no saber como eliminarlo... para quien no ha leido esto.. le paso a explicar...

la idea es que este mismo codigo marche en vez desde un listado.. desde una base de datos. mysql... haber quien sabe como hecharme una mano...

gracias


codigo ajax

<script type="text/javascript">
var peticion = null;

function inicializa_xhr() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}

function muestraProvincias() {
if (peticion.readyState == 4) {
if (peticion.status == 200) {
var lista = document.getElementById("provincia");
var provincias = eval('(' + peticion.responseText + ')');

lista.options[0] = new Option("- selecciona -");
var i=1;
for(var codigo in provincias) {
lista.options[i] = new Option(provincias[codigo], codigo);
i++;
}
}
}
}

function cargaMunicipios() {
var lista = document.getElementById("provincia");
var provincia = lista.options[lista.selectedIndex].value;
if(!isNaN(provincia)) {
peticion = inicializa_xhr();
if (peticion) {
peticion.onreadystatechange = muestraMunicipios;
peticion.open("POST", "http://localhost/cargaMunicipiosJSON.php?nocache=" + Math.random(), true);
peticion.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
peticion.send("provincia=" + provincia);
}
}
}

function muestraMunicipios() {
if (peticion.readyState == 4) {
if (peticion.status == 200) {
var lista = document.getElementById("municipio");
var municipios = eval('(' + peticion.responseText + ')');

lista.options.length = 0;
var i=0;
for(var codigo in municipios) {
lista.options[i] = new Option(municipios[codigo], codigo);
i++;
}
}
}
}

window.onload = function() {
peticion = inicializa_xhr();
if(peticion) {
peticion.onreadystatechange = muestraProvincias;
peticion.open("GET", "http://localhost/cargaProvinciasJSON.php?nocache="+Math.random(), true);
peticion.send(null);
}

document.getElementById("provincia").onchange = cargaMunicipios;
}

</script>
</head>

<body>
<h1>Listas desplegables encadenadas</h1>

<form>
<label for="provincia">Provincia</label>
<select id="provincia">
<option>Cargando...</option>
</select>
<br/><br/>
<label for="municipio">Municipio</label>
<select id="municipio">
<option>- selecciona una provincia -</option>
</select>
</form>

</body>
</html>




y ahora muestro uno de los listados... este e el que tengo que reformar, para que en vez de sacar los datos de aqui.. haga una consulta a mysql.. algo como
$row=mysql_query("select * from $marcamodelo ") marcamodelo seria el primer select del listado... muchas gracias.


<?php

$provincias["26"] = "Rioja (La)";
$provincias["37"] = "Salamanca";
$provincias["38"] = "Santa Cruz de Tenerife";
$provincias["40"] = "Segovia";
$provincias["41"] = "Sevilla";
$provincias["42"] = "Soria";
$provincias["43"] = "Tarragona";
$provincias["44"] = "Teruel";
$provincias["45"] = "Toledo";
$provincias["46"] = "Valencia/València";
$provincias["47"] = "Valladolid";
$provincias["48"] = "Vizcaya/Bizkaia";
$provincias["49"] = "Zamora";
$provincias["50"] = "Zaragoza";



foreach($provincias as $codigo => $nombre) {
$elementos_json[] = "\"$codigo\": \"$nombre\"";
}

echo "{".implode(",", $elementos_json)."}"

?>

este seria un listado..

Etiquetas: ajax, listado
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 21:06.