Retroceder   Foros del Web > Programación para sitios web > AJAX
Crea un nuevo usuario o inicia sesión utilizando tu cuenta de Facebook
Connect with Facebook

Respuesta
 
Herramientas Desplegado
Antiguo 06-ene-2009, 18:53   #1 (permalink)
Yawe ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2008
Mensajes: 28
Yawe está desconectado
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-ene-2009 a las 19:40
  Responder Citando
Antiguo 06-ene-2009, 18:59   #2 (permalink)
$this->role('moderador');
GatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra Lassie
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 22.529
GatorV está desconectado
Respuesta: Combos dependientes

Tema trasladado a AJAX
__________________
Blog Web
  Responder Citando
Antiguo 07-ene-2009, 12:24   #3 (permalink)
XLogus se está ganando tu confianza
 
Avatar de XLogus
 
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 261
Enviar un mensaje por MSN a XLogus
XLogus está desconectado
Respuesta: Combos dependientes

Hola
Seria mejor que subieras tu script a internet para poder depurarlo e indicarte exactamente cual es el error.

O puedes probar con una forma menos confusa de hacer combos dependientes usando jquery y que es bastante facil de adaptar a tu script

http://www.miguelmanchego.com/2009/c...s-ajax-jquery/
  Responder Citando
Respuesta
No hay votos aún.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 06:39.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100