Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/04/2015, 15:43
Avatar de scorpion3d
scorpion3d
 
Fecha de Ingreso: mayo-2011
Mensajes: 92
Antigüedad: 13 años
Puntos: 19
Select dependiente no envía valores por get o post

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.
__________________
www.elias.com.sv