Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2013, 11:46
ahimee
 
Fecha de Ingreso: febrero-2013
Ubicación: Ensenada BC, Mexico.
Mensajes: 5
Antigüedad: 11 años, 2 meses
Puntos: 0
Select dinamico PHP y Javascript

Hola soy nueva en este foro y quisiera saber si ustedes me pueden ayudar con un problemita que tengo con unos selects dependientes en PHP y Mysql.

Tengo 3 selects que dependen de lo que se seleccione en el primero para mostrar los datos, eso me funciona muy bien, el problema es cuando quiero insertarlos a la base de datos, solo inserta los ID de las opciones y no inserta el nombre.

Estos son los codigos que tengo:

Este archivo se llama conDDLDependencia y es el que arma el primer select:

Código PHP:
<?php
include_once("DBManager.php"); 

$con = new DBManager;

    if(
$con->conectar()==true)
    {

        
$query="SELECT * from tbramo order by nomRamo";

        
$result mysql_query ($query);

        echo 
"<select name=txtRamo id=ramo style=width:200px;>";


    echo
"<option value=\"0\">Selecciona</option> ";

        while(
$nt=mysql_fetch_array($result)){
        echo 
"<option value=$nt[idRamo]>$nt[nomRamo]</option>";

        }
        echo 
"</select>";
    }
    
?>
Este otro se llama action.php y es el que arma los 2 selects dependientes:

Código PHP:
<?php
include_once("DBManager.php"); 

$con = new DBManager;

if(
$con->conectar()==true)
{

function 
getDependencias(){
  
$sql="select * from tbdependencia where idRamo=".$_POST["idramo"];
  
$result=mysql_query($sql);
  
$resp="";
  if(
$result){
    if(
mysql_num_rows($result)>0){
        
$resp.="<option value=''> Seleccione Dependencia </option>";
        while(
$r=mysql_fetch_object($result)){
          
$resp.="<option value='".$r->idDepen."'>".$r->nombDepen."</option>";
            }
    }else 
$resp.="<option value=''> Seleccione Dependencia </option>";
    }else 
$resp="ERROR";
    echo 
$resp;
}

function 
getDepartamentos(){
    
$sql="select * from tbdepartamento where idDepen=".$_POST["iddependencia"];
    
$result=mysql_query($sql);
    
$resp="";
    if(
$result){
        if(
mysql_num_rows($result)>0){            
            
$resp.="<option value=''> Seleccione departamento </option>";
            while(
$r=mysql_fetch_object($result)){
                
$resp.="<option value='".$r->idDepto."'>".$r->nomDepto."</option>";
            }
        }else 
$resp="<option value=''> Seleccione departamento </option>";
    }else 
$resp="ERROR";
    echo 
$resp;
}
 
if(
$_POST){
    switch(
$_POST["tarea"]){
    case 
"listDependencia":getDependencias();
            break;
    case 
"listDepartamento":getDepartamentos();
            break;
    }
}
}
?>
y por ultimo este es un javascript, procesar.js:
Código:
$(document).ready(function(){
        $("#ramo").change(function(){
			$("#dependencia").empty().attr("disabled","disabled");
            $("#departamento").empty().attr("disabled","disabled");
            if($(this).val()!=""){
                var dato=$(this).val();
                $("#imgdependencia").show();
                $.ajax({
                    type:"POST",
                    dataType:"html",
                    url:"action.php",
                    data:"idramo="+dato+"&tarea=listDependencia",
                    success:function(msg){
                        $("#dependencia").empty().removeAttr("disabled").append(msg);
                        $("#imgdependencia").hide();
                    }
                });
            }else{
                $("#dependencia").empty().attr("disabled","disabled");
                $("#departamento").empty().attr("disabled","disabled");
            }
        });
        $("#dependencia").change(function(){			
            if($(this).val()!=""){
                var dato=$(this).val();
                $("#imgdepartamento").show();
                $.ajax({
                    type:"POST",
                    dataType:"html",
                    url:"action.php",
                    data:"iddependencia="+dato+"&tarea=listDepartamento",
                    success:function(msg){                        
                        $("#departamento").empty().removeAttr("disabled").append(msg);
                        $("#imgdepartamento").hide();
                    }
                });
            }else{
                $("#departamento").empty().attr("disabled","disabled");
            }
        });
    });
En la BD estan de la siguiente manera:

tbramo:
idRamo, nomRamo.

tbdependencia:
idDepen, idRamo, nombDepen

tbdepartamento:
idDepto, idRamo, idDepen, nomDepto

Al momento de insertar los selects se inserta solo el ID, la comparacion para que puedan salir los datos en los selects dependientes es por medio del ID, y si la hago por medio del nombre no me muestra ningun dato.

Espero haberme explicado bien, es mi primera vez por aqui