
combos relacionados
Publicado por francisharo (4 intervenciones) el 10/09/2008 00:20:01
Que tal chicos, tengo un problema y el tema es que soy nuevo con ajax, tengo dos combos relacionados, el primero es cargado desde la DB, postgres y del resultado de esta se carga el segundo combo. el codigo es el siguiente si alguien puede decirme cual es el error, por que no lo encuentro. Saludos.
<?php
include ("conectar.php");
$query = "SELECT * FROM pedido";
$result = pg_query($query);
echo"<select name='Actividades' onchange='javascript:cargarCombo('segundo.php', 'Actividades', 'Div_Subactividades')' id='Actividades'>";
// echo "<select name='paises' id='paises' onChange='cargaContenido(this.id)'>";
echo "<option value='0'>Elige</option>";
while ($registro = pg_fetch_row($result))
{
$ID=$registro[4];
echo "<option value='".$registro[4]."'>".$registro[1]."</option>";
}
echo "</select>";
?>
<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>
Este es el archivo que carga el segundo combo, llamado "segundo.php"
<?php
$IdActividad = $_REQUEST['Id'];
include ("conectar.php");
$query = "SELECT * FROM deatalle_pedido WHERE IdActividad=$IdActividad";
$result = pg_query($query);
echo "<select name='SubActividades' id='SubActividades' class='select'>";
echo "<option value='0'>Elige</option>";
while ($registro = pg_fetch_row($result))
{
$ID=$registro[4];
echo "<option value='".$registro[4]."'>".$registro[1]."</option>";
echo htmlentities($registro[4]);
}
echo "</select>";
?>
<?php
include ("conectar.php");
$query = "SELECT * FROM pedido";
$result = pg_query($query);
echo"<select name='Actividades' onchange='javascript:cargarCombo('segundo.php', 'Actividades', 'Div_Subactividades')' id='Actividades'>";
// echo "<select name='paises' id='paises' onChange='cargaContenido(this.id)'>";
echo "<option value='0'>Elige</option>";
while ($registro = pg_fetch_row($result))
{
$ID=$registro[4];
echo "<option value='".$registro[4]."'>".$registro[1]."</option>";
}
echo "</select>";
?>
<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>
Este es el archivo que carga el segundo combo, llamado "segundo.php"
<?php
$IdActividad = $_REQUEST['Id'];
include ("conectar.php");
$query = "SELECT * FROM deatalle_pedido WHERE IdActividad=$IdActividad";
$result = pg_query($query);
echo "<select name='SubActividades' id='SubActividades' class='select'>";
echo "<option value='0'>Elige</option>";
while ($registro = pg_fetch_row($result))
{
$ID=$registro[4];
echo "<option value='".$registro[4]."'>".$registro[1]."</option>";
echo htmlentities($registro[4]);
}
echo "</select>";
?>
Valora esta pregunta


0