Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/08/2008, 23:34
Avatar de petoko
petoko
 
Fecha de Ingreso: noviembre-2007
Ubicación: talcahuano chile
Mensajes: 173
Antigüedad: 16 años, 6 meses
Puntos: 0
problema con variables

holaa amigos tengo un problema estoy haciendo unos selects enlazados
todos los select los saco desde la misma tabla y aqui va mi problema...

en el primer select cargo el nombre de una persona en el siguente el apellido paterno y en el siguente el apellido materno, mi problema es que si por ejemplo tnego dos personas con apellido paterno "gomez"y uno tiene nombre juan y el oro tiene nombre pedro al momento de cargar el select con el apellido materno me salen los apellidos de juan y pedro siendo que solo quieor que salga el de la persona que elijo espero que se entienda y que me puesan ayudar

aqui estan los codigos el primero es el que cargo y llamo al segundo codigo que puse ahy merque con rojo donde creo k estoy mal y ahy es donde quiero que me ayuden y me digan como poder hacerlo

gracias de antemano

Código PHP:
<?
      
function generaSelect()
{
        include 
'conexion.php';
        
conectar();
        
$consulta=mysql_query("SELECT nombres_p_e FROM registro_proveedores_externos GROUP BY nombres_p_e");
        
desconectar();

        
// Voy imprimiendo el primer select compuesto por los paises
        
echo "<select name='select1' id='select1' onChange='cargaContenido(this.id)'>";
        echo 
"<option value='0'>seleccione</option>";
        while(
$registro=mysql_fetch_row($consulta))
        {
                echo 
"<option value='".$registro[0]."'>".$registro[0]."</option>";
        }
        echo 
"</select>";
}
      
?>

<html>
<head>
<title>Listar Mantenciones Realizadas A Equipamiento Computacional</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</script>
<script type="text/javascript" src="select_dependientes_3_niveles.js"></script>
</head>

<body bgcolor="#F5F5F5">
<form name="form1" method="post" action="">
<? include("c:/servidor/web/pruebaconexion.php"); ?>

  <table width="60%" height="295" border="0" align="center">
    <tr bgcolor="#F5F5F5"> 
      <td height="90" colspan="2"> <div align="center"><font color="#373F9B" size="+3" face="Verdana, Arial, Helvetica, sans-serif"><strong>Registro 
          Servicios Externos</strong></font></div></td>
    </tr>
    <tr bgcolor="#F5F5F5"> 
      <td width="46%" height="31"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif"><strong>Nombre</strong></font></div></td>
      <td width="54%"> 
        <?php generaSelect(); ?>
      </td>
    </tr>
    <tr bgcolor="#F5F5F5"> 
      <td height="35"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif"><strong>Apellido 
          Paterno <br>
          </strong></font></div></td>
      <td> <font face="Verdana, Arial, Helvetica, sans-serif"> 
        <select name="select2" disabled="disabled" id="select2">
          <option value="0">Selecciona opci&oacute;n...</option>
        </select>
        </font></td>
    </tr>
    <tr bgcolor="#F5F5F5"> 
      <td height="35" bgcolor="#F5F5F5"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif"><strong>Apellido 
          Materno</strong></font></div></td>
      <td> <select disabled="disabled" name="select3" id="select3">
          <option value="0">Selecciona opci&oacute;n...</option>
        </select> </td>
    </tr>
    <tr bgcolor="#F5F5F5">
      <td height="35"><div align="right"><font face="Verdana, Arial, Helvetica, sans-serif"><strong>Apellido</strong></font></div></td>
      <td><select disabled="disabled" name="select4" id="select4">
          <option value="0">Selecciona opci&oacute;n...</option>
        </select></td>
    </tr>
    <tr bgcolor="#F5F5F5"> 
      <td height="35"> <div align="right"></div></td>
      <td> <font face="Verdana, Arial, Helvetica, sans-serif"> 
        <input name="listar" type="submit" id="listar" value="Listar">
        <input name="cancelar" type="reset" id="cancelar2" value="Cancelar">
        </font></td>
    </tr>
  </table>
desde este codigo llamo donde estan las consultas

Código:
<?php
// Array que vincula los IDs de los selects declarados en el HTML con el nombre de la tabla donde se encuentra su contenido
$listadoSelects=array(
"select1"=>"registro_proveedores_externos",
"select2"=>"registro_proveedores_externos",
"select3"=>"registro_proveedores_externos",
"select4"=>"registro_proveedores_externos"
);

function validaSelect($selectDestino)
{
        // Se valida que el select enviado via GET exista
        global $listadoSelects;
        if(isset($listadoSelects[$selectDestino])) return true;
        else return false;
}

function validaOpcion($opcionSeleccionada)
{
        // Se valida que la opcion seleccionada por el usuario en el select tenga un valor numerico
        if($opcionSeleccionada) return true;
        else return false;
}

$selectDestino=$_GET["select"]; $opcionSeleccionada=$_GET["opcion"];

if(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
{
        $tabla=$listadoSelects[$selectDestino];
        include 'conexion.php';
        conectar();
        if($_GET['select']=='select2')
        {
         $consulta=mysql_query("SELECT APELLIDO_PATERNO_P_E FROM $tabla WHERE nombres_p_e='$opcionSeleccionada' group by APELLIDO_PATERNO_P_E") or die(mysql_error());
         desconectar();

         // Comienzo a imprimir el select
         echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
         echo "<option value='0'>Elige</option>";
         while($registro=mysql_fetch_row($consulta))
         {
                // Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
                $registro[1]=htmlentities($registro[1]);
                // Imprimo las opciones del select
                echo "<option value='".$registro[0]."'>".$registro[0]."</option>";
         }
         echo "</select>";
        }
        if($_GET['select']=='select3')
        {
        echo "SELECT APELLIDO_MATERNO_P_E FROM $tabla WHERE APELLIDO_PATERNO_P_E='$opcionSeleccionada' and nombres_p_e='$select1' group by APELLIDO_MATERNO_P_E";
         $consulta=mysql_query("SELECT APELLIDO_MATERNO_P_E FROM $tabla WHERE APELLIDO_PATERNO_P_E='$opcionSeleccionada'  group by APELLIDO_MATERNO_P_E") or die(mysql_error());
         desconectar();

         // Comienzo a imprimir el select
         echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
         echo "<option value='0'>Elige</option>";
         while($registro=mysql_fetch_row($consulta))
         {
                // Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
                $registro[1]=htmlentities($registro[1]);
                // Imprimo las opciones del select
                echo "<option value='".$registro[0]."'>".$registro[0]."</option>";
         }
         echo "</select>";
        }
        
            if($_GET['select']=='select4')
            {
             $consulta=mysql_query("SELECT COMUNA_P_E FROM $tabla WHERE APELLIDO_MATERNO_P_E='$opcionSeleccionada' group by COMUNA_P_E") or die(mysql_error());
             desconectar();

             // Comienzo a imprimir el select
            echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
            echo "<option value='0'>Elige</option>";
             while($registro=mysql_fetch_row($consulta))
             {
                // Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
                $registro[1]=htmlentities($registro[1]);
                // Imprimo las opciones del select
                echo "<option value='".$registro[0]."'>".$registro[0]."</option>";
             }
             echo "</select>";
            }
}
?>
saludos