Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/12/2010, 22:23
vissiontotal
 
Fecha de Ingreso: mayo-2008
Mensajes: 103
Antigüedad: 16 años
Puntos: 0
Pregunta Guardar valor de un Select

Hola amigos traigo este problemita........

Utilizo un combo para el clasico Pais, Estado, Ciudad... Funciona muy bien,.... el problema es que cuando guardo el valor de los Select en la base de datos se guarda el número que corresponde a al estado por ejemplo y no se guarda el nombre del estado que es lo que me interesa...................

El valor de los Select se guardar por ejemplo...... $ciudad = $_POST['ciudad'];


Y esto seria el Select.........
Código HTML:
<select id="estado" name="estado" onChange="">
              <option value="0" selected="selected">----------------</option>
            </select> 


Este es el Scrip que utilizo en la pagina para que el combo funcione....
Código PHP:
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
    $("select").change(function(){
        // Vector para saber cuál es el siguiente combo a llenar

        var combos = new Array();
        combos['pais'] = "estado";
        combos['estado'] = "ciudad";
        // Tomo el nombre del combo al que se le a dado el clic por ejemplo: país
        posicion = $(this).attr("name");
        // Tomo el valor de la opción seleccionada 
        valor = $(this).val()        
        // Evaluó  que si es país y el valor es 0, vacié los combos de estado y ciudad
        if(posicion == 'pais' && valor==0){
            $("#estado").html('    <option value="0" selected="selected">----------------</option>')
            $("#ciudad").html('    <option value="0" selected="selected">----------------</option>')
        }else{
        /* En caso contrario agregado el letreo de cargando a el combo siguiente
        Ejemplo: Si seleccione país voy a tener que el siguiente según mi vector combos es: estado  por qué  combos [país] = estado
            */
            $("#"+combos[posicion]).html('<option selected="selected" value="0">Cargando...</option>')
            /* Verificamos si el valor seleccionado es diferente de 0 y si el combo es diferente de ciudad, esto porque no tendría caso hacer la consulta a ciudad porque no existe un combo dependiente de este */
            if(valor!="0" || posicion !='ciudad'){
            // Llamamos a pagina de combos.php donde ejecuto las consultas para llenar los combos
                $.post("combos.php",{
                                    combo:$(this).attr("name"), // Nombre del combo
                                    id:$(this).val() // Valor seleccionado
                                    },function(data){
                                                    $("#"+combos[posicion]).html(data);    //Tomo el resultado de pagina e inserto los datos en el combo indicado                                                                                
                                                    })                                                
            }
        }
    })        
})
</script> 



Este el el archivo llamado combos.php
Código PHP:
<?
 
function conexion(){
    if (!(require_once(
'Connections/vissiontotal.php'))){
        die(
"Error conectando a la base de datos.......");
    }
    if (!
mysql_select_db($database_vissiontotal)){ 
        die(
"Error seleccionando la base de datos..");
    }
  }
$conection conexion();
$idcombo $_POST["id"];
$action =$_POST["combo"];
switch(
$action){
    case 
"pais":{
        
$res mysql_query("SELECT idestado,estado FROM estado WHERE pais = $idcombo order by estado ASC");
        while(
$rs mysql_fetch_array($res))
            echo 
'<option value="'.$rs["idestado"].'">'.htmlentities($rs["estado"]).'</option>';    
    break;
    }
    case 
"estado":{        
        
$res mysql_query("SELECT idciudad,ciudad FROM ciudad WHERE estado= $idcombo order by ciudad ASC");
        while(
$rs mysql_fetch_array($res))
            echo 
'<option value="'.$rs["idciudad"].'">'.htmlentities($rs["ciudad"]).'</option>';    
    break;
    }
}
?>


Y esto es lo que pongo en el primer Select de Pais... los otros se actualizan y rellenan solos....

Código PHP:
<select name="pais" id="pais">
                <option selected="selected" value="0">---------</option>
                <?
$res 
mysql_query("SELECT * FROM pais");
$cant =  mysql_num_rows($res);
if(
$cant>0){                        
    while(
$rs mysql_fetch_array($res)){
    
?>
                <option value="<?=$rs["idpais"]?>">
                  <?=$rs["pais"]?>
                  </option>
                <? 
    
}

?>
              </select >