Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/01/2009, 19:53
Yawe
 
Fecha de Ingreso: diciembre-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Combos dependientes

Hola, les cuento mi problema...

Tengo una tabla "marcas" con "id" y "nombre", y dsp tengo otra tabla "productos" que tiene "idmarca" "idproductos" y "productos" como campos...

ahora bien este es el codigo php con el que quiero que el usuario al seleccionar una "marca" me devuelva todos los posibles productos

el archivo "a" :

Cita:
<p><label for="actividad">Actividad:</label>
<select name="Actividades" onchange="javascript:cargarCombo('www.homeoleoyart e.com.ar/b.php', 'Actividades', 'Div_Subactividades')" id="Actividades">

<?php

$dbhost="localhost";
$dbuser="user";
$dbpass="pass";
$dbname="nombre base de datos";
$query = "SELECT * FROM marcas";

$conID=mysql_connect($dbhost,$dbuser,$dbpass) or die("Error al conectar a la base de datos".mysql_error());

mysql_select_db($dbname, $conID);

$result=mysql_query($query);

$num=mysql_numrows($result);
mysql_close();
$i=0;
while ($i < $num) {
$Id = mysql_result($result,$i,"id");
$Actividad = mysql_result($result,$i,"nombre");
?>
<option value=<? echo $Id; ?>>
<? echo $Actividad ?>
</option>
<?
$i++;
}
?>
</select>
</p>
<p>
<div id="Div_Subactividades">

<label for="SubActividad">SubActividad:</label>
<select name="SubActividades" id="SubActividades" class="select">
</select>
</div>
</p>

<script type="text/javascript">
var peticion = false;
var testPasado = false;
try {
peticion = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
peticion = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
peticion = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
peticion = false;
}
}
}
if (!peticion)
alert("ERROR AL INICIALIZAR!");


function cargarCombo (url, comboAnterior, element_id) {
//Obtenemos el contenido del div
//donde se cargaran los resultados
var element = document.getElementById(element_id);
//Obtenemos el valor seleccionado del combo anterior
var valordepende = document.getElementById(comboAnterior)
var x = valordepende.value
//construimos la url definitiva
//pasando como parametro el valor seleccionado
var fragment_url = url+'?Id='+x;
element.innerHTML = '<img src="Imagenes/loading.gif" />';
//abrimos la url
peticion.open("GET", fragment_url);
peticion.onreadystatechange = function() {
if (peticion.readyState == 4) {
//escribimos la respuesta
element.innerHTML = peticion.responseText;
}
}
peticion.send(null);
}
</script>
y el archivo "B" :

Cita:
<?
$idmarca = $_REQUEST['id'];
?>

<label for="producto">producto:</label>
<select name="SubActividades" id="SubActividades" class="select">


<?php

$dbhost="localhost";
$dbuser="w1600558";
$dbpass="22SUlulibe";
$dbname="w1600558_home";
$query = "SELECT * FROM marcas";

$conID=mysql_connect($dbhost,$dbuser,$dbpass) or die("Error al conectar a la base de datos".mysql_error());

mysql_select_db($dbname, $conID);


$query = "SELECT * FROM productos WHERE idmarca=$idmarca";
$result=mysql_query($query);
$num= mysql_numrows($result);
mysql_close();
$i=0;
while ($i < $num) {
$idproducto = mysql_result($result,$i,"idproducto");
$producto = mysql_result($result,$i,"producto");
?>
<option value=<? echo $idproducto; ?>>
<? echo htmlentities($SubActividad) ?>
</option>
<?
$i++;
}
?>
</select>
como tirar error no me tira nada, pero tengo los menus, sin datos adentro :S como si pasara por la base de datos y no sacara nada

EDITO: Ahora como figura el codigo aca arriba, funciona la "primera" parte del script.. es decir me aparecen las marcas pero cuando selecciono una para q me devuelva en otro select sigo en la nada, esta vacio totalmente :S

EDITO: resfresca la segunda lista donde tiene que cargar los datos una vez que elijo la opcion en la primera pero no da nada, me parece que necestio unir las tablas no se..

Última edición por Yawe; 06/01/2009 a las 20:40