Que tal señores, voy a aclarar un poquito mas mi duda o problema:
Tengo dos select, el primero se carga de la base de datos directamente, cuando selecciono una opción el segundo select se llena a partir del valor del primero, hasta ahí todo bien.
El problema es cuando le doy enviar al formulario, la página que recibe los valores, no recibe la variable proveniente del segundo select, ni por get ni por post.
Este es mi formulario (formulario.php):
Código PHP:
<form id="form1" name="form1" method="POST" action="guardar.php">
//EL PRIMER SELECT
<select id="departamento" name="departamento" onchange="mostrarMunicipios()">
<option value="">Seleccionar...</option>
<?php
$rs_prov = mysql_query("SELECT id,nombre FROM departamentos ORDER BY nombre ASC");
while($row_prov = mysql_fetch_assoc($rs_prov)){
?>
<option value="<?php echo $row_prov['id']; ?>"><?php echo $row_prov['nombre']; ?></option>
<?php } ?>
</select>
//EL SEGUNDO SELECT
<div id="listado_municipios">
<select name="municipio">
<option value="">Seleccionar...</option>
</select>
</div>
<input type="submit" name="button2" id="button2" value="guardar" />
</form>
Esta es la pagina ajax (ajax.js):
Código PHP:
// JavaScript Document
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
//==================
function mostrarMunicipios(){
divResultado = document.getElementById('listado_municipios');
depto=document.getElementById('departamento').value;
ajax=objetoAjax();
ajax.open("POST", "lista_municipios.php");
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
divResultado.innerHTML = ajax.responseText
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("id_departamento="+depto)
}
la pagina que crea el segundo select (lista_municipios.php):
Código PHP:
<?php include('connection/connection.php'); ?>
<select name='municipio'>
<option value="">Seleccionar...</option>"
<?php
$query_municipios = mysql_query("SELECT id,nombre FROM municipios WHERE id_departamento = '".$_POST['id_departamento']."' ORDER BY nombre ASC");
$municipios = mysql_fetch_assoc($query_municipios);
do{
?>
<option value="<?php echo $municipios['id']; ?>" <?php if($participantes['municipio'] == $municipios['id']){echo 'selected="selected"';}?>><?php echo $municipios['nombre']; ?></option>
<?php } while ($municipios = mysql_fetch_assoc($query_municipios)); ?>
</select>
Por ultimo la pagina que debería mostrar los resultados (guardar.php):
Código PHP:
echo $_POST['departamento'];
echo $_POST['municipio'];
Aclaro que los select funcionan bien, muestran los valores filtrados y todo, el problema es a la hora de enviar esos valores a otra pagina, el primer select envia sin problemas su variable respectiva, pero el segundo ni siquiera envía la variable, lo probé en get para ver en la URL que es lo que mandaba pero solo está enviado la variable departamento.
Ya investigué y no he dado con la solución, el problema al parecer está en la forma que cargo el segundo select, lo mustra en el formulario pero a la hora de enviarlo es como si nunca hubiera existido.
Gracias de ante mano.