¿seguro?, pues deberia, a ver si lo colocas mal, te paso el codigo completo, cambiandolo de zona a ver si asi:
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)
{
echo "<option value=''> ------Seleccione------ </option>\n";
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_interno); // Liberar memoria usada por consulta.
echo "</select>\n\n";
echo "</form>\n";
?>
Saludos.