Se trata de un listbox padre y un listbox hijo.
Cuando despliego el listbox padre y selecciono un valor, la pagina se carga denuevo y genera el codigo id del padre y lo lanzo a un textbox.
Pero no logro realizarlo con el listbox hijo, estoy haciendolo de una u otra forma, pero no entiendo qué pasa.
Ya lo realicé con el padre pero no puedo con el hijo, espero alguien pueda ayudarme ya que estoy sin poder avanzar y paso horas tratando de lograrlo, pero no puedo :(
Código PHP:
<?php
// datos de conexión a la BD.
$servidor ="localhost"; // host
$usuario ="root";
$clave ="";
$basedatos ="inventario"; // Indicar una Base de datos.
// Conexión a la BD
$conexion = mysql_connect($servidor, $usuario, $clave) or die(mysql_error());
mysql_select_db($basedatos, $conexion) or die(mysql_error());
// Obtener el $id_padre del envío a sí mismo del formulario ...
if (isset($_POST['id_equipo']) && ($_POST['id_interno']) )
{
$id_equipo =$_POST['id_equipo'];
$id_interno = $_POST['id_interno'];
}
// Inicio Formulario .. PHP_SELF enviamos a sí mismo (a este script).
echo "<form action='".$_SERVER['PHP_SELF']."' method='POST'>\n\n";
// Formar Selec "Padre".
echo "Tipo de Equipo :<select name='id_equipo' onChange='this.form.submit()'>\n";
echo "<option value=''> ------Seleccione------ </option>\n";
$SQLconsulta_equipo="SELECT * FROM equipos";
$consulta_equipo = mysql_query($SQLconsulta_equipo,$conexion) or die(mysql_error());
while ($registro_equipo=mysql_fetch_assoc($consulta_equipo)){
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
// Se selecciona en consecuencia (selected) la opción elegida.
$selected= ($id_equipo == $registro_equipo['id_equipo']) ? 'selected="selected"' : '';
echo "<option value='".$registro_equipo['id_equipo']."' $selected>".$registro_equipo['nom_equipo']."</option>\n";
}
echo "</select>\n\n";
mysql_free_result($consulta_equipo); // Liberar memoria usada por consulta.
// Formar Select "Hijo"
echo "Código de Equipo : <select name='id_interno' onChange='this.form.submit()' >\n";
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opción del select hijo
// se muestra el mensaje de "seleccine un item" (del select padre).
if (!empty($id_equipo))
{
$SQLconsulta_interno="SELECT * FROM cod_internos WHERE id_equipo='$id_equipo'";
$consulta_interno = mysql_query($SQLconsulta_interno,$conexion) or die(mysql_error());
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
if (mysql_num_rows($consulta_interno) != 0)
{
while ($registro_interno=mysql_fetch_assoc($consulta_interno))
{
$selected= ($id_interno == $registro_interno['id_interno']) ? 'selected="selected"' : '';
echo "<option value='".$registro_interno['id_interno']."' $selected>".$registro_interno['num_equipo']."</option>\n";
}
}
else {
echo "<option value=''> No hay registros para este equipo</option>";
}
} else
{
echo "<option value=''>Código Equipo</option>";
}
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.
echo "</select>\n\n";
echo "</form>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<input name='id_equipo' type='text' value='<?php printf ($id_equipo["id_equipo"]);?>' />
<input name='id_interno' type='text' value='<?php printf ($id_interno['id_interno']);?>' />
</body>
</html>