Comunidad de diseño web y desarrollo en internet online

ayuda sensilla para quien conoce javascript

Citar            
MensajeEscrito el 14 Ene 2010 03:41 am
buenas.... mi problema consiste en que no se como tomar el valor de la segunda seleccion.. y incluirlo en el query para una nueva consulta a la db y ejecutarlo...
ni tampoco puedo trancar que se ejecute el segundo query hasta que no se seleccione una marca... haber si alguien puede sacarme este tormento de encima... muchas gracias de antemano a todos

<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>" ;

//hasta aca marcha impecable
//lo que tengo que lograr es q cuando se selecciona una marca arriba. se dispare este siguiente querry y en $mar
//este el valor de la marca seleccionada arriba.

$ra=mysql_query("SELECT * from modelo where marca=$mar ") or die("no selecciona modelo");

echo "<form action='' method='post' name='form1' id='TDdos' style='display:none;'>" ;

echo "<select name='modelo'><option value=''>Elige Modelo</option>";
while($ro=mysql_fetch_array($ra)) echo "<option value='".$ro['mod']."'>".$ro['mod']."</option>";
echo "</select>
</form>" ;

Por rrecarte

14 de clabLevel



 

opera
Citar            
MensajeEscrito el 14 Ene 2010 01:37 pm
segun lo que entiendo es que tu quieres que al selecionar algun objeto del primer listdao este recargue el segundo listado!

si es asi te cuento que debes hacerlo de forma asincrona es decir con ajax, para esto solo creas el primer select y en el onchange lanzas la funcion en javascript que crea el ajax y este a su vez lanza el fracmento de codigo php que hace la consulta y devuelve el listado del nuevo select, ya con ese listado puedes alimentar el segundo select ya sea por DOM o por un innerHTML

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 14 Ene 2010 03:31 pm
asi es. eso es lo que intento lograr.. pero no doy con el codigo. no conozco ajax y manejo muy poco de javascript.. agradezco si alguien puede hecharme una mano en esto... muchas gracias nuevamente

Por rrecarte

14 de clabLevel



 

opera
Citar            
MensajeEscrito el 14 Ene 2010 08:06 pm
por favor recuerda que aqui esta todo, solo te hace falta buscar !!!
http://www.cristalab.com/tutoriales/tutorial-de-ajax-c162l/

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 14 Ene 2010 09:57 pm
muchas gracias quien me pueda hechar una mano

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..

Por rrecarte

14 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Ene 2010 01:46 pm
cual es tu duda!???? :?

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.