Buenas a todos:
Vamos a ver, el pequeño problema que tengo es el siguiente:
Tengo un formulario con un select que muestra datos de una base de datos, y después mediante AJAX, al elegir una opción, me aparece otro select dependiente del anterior.
El problema viene al recoger los datos del formulario, el primer select lo recojo sin problemas, pero no consigo recoger el segundo en una variable.
¿Alguna ayudita para lograrlo plis? Gracias
Aquí el código:
SubirArchivo.php
Código PHP:
<html>
<head>
<title>Subir Archivos</title>
</head>
<body>
<script>
var ajax;
function funcionCallback()
{
// Comprobamos si la peticion se ha completado (estado 4)
if( ajax.readyState == 4 )
{
// Comprobamos si la respuesta ha sido correcta (resultado HTTP 200)
if( ajax.status == 200 )
{
// Escribimos el resultado en la pagina HTML mediante DHTML
document.all.salida.innerHTML = "<b>"+ajax.responseText+"</b>";
}
}
}
function recuperaExpediente()
{
// Creamos el control XMLHttpRequest segun el navegador en el que estemos
if( window.XMLHttpRequest )
ajax = new XMLHttpRequest(); // No Internet Explorer
else
ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer
// Almacenamos en el control al funcion que se invocara cuando la peticion
// cambie de estado
ajax.onreadystatechange = funcionCallback;
// Enviamos la peticion
ajax.open( "POST", "SubirArchivo2.php?exp="+document.all.entrada.value, true );
ajax.send( "" );
}
</script>
<?php
mysql_connect("localhost:3306","root","");
mysql_select_db("dbproyecto");
?>
<div align="center">
<font class="titulo">Subir archivo</font></br></br>
<table border="3" align="center">
<form name="formulario" action="SubirArchivo.php" method="POST" enctype="multipart/form-data">
<tr><td>Elige un Expediente:</td>
<td><select name="expediente" id="entrada" onChange="recuperaExpediente()">
<?php
$consulta = "SELECT * FROM expedientes ORDER BY Expediente;";
$result = mysql_query($consulta);
echo "<option name='exp' value='<--Selecciona un expediente-->'><--Selecciona un expediente--></option>";
if ($row = mysql_fetch_array($result))
{
do
{
echo "<option name ='exp' value='".$row["Expediente"]."'>Expediente Nº ".$row["Expediente"]."</option>";
} while ($row = mysql_fetch_array($result));
}
?>
<tr><td>Área</td><td><span id="salida"></span></td></tr>
...
<tr><td></td><td><input type="submit" value="Subir Archivo"></td></tr>
</form></table>
<?php
if (isset($_POST["expediente"]))
{
if ($_POST["expediente"]=="<--Selecciona un expediente-->")
{
?>
</br><font class="textonormal" color=red>Error.</br>Elige un expediente.</font></br>
<?php
}
else
{
$expediente = $_POST["expediente"];
if (isset($_POST["area"]))
{
if ($_POST["area"]=="Selecciona")
{
?>
</br><font class="textonormal" color=red>Error.</br>Elige un área.</font></br>
<?php
}
else
{
$area = $_POST["area"];
}
}
...
</body>
</html>
SubirArchivo2.php
Código PHP:
<html>
<head>
<title>Subir Archivos</title>
</head>
<body>
<?php
$exp = $_GET["exp"];
echo "<select name='area'>";
if ($exp=="Selecciona")
{
echo "<option value='Selecciona'><--Selecciona un area--></option>";
}
else
{
mysql_connect("localhost:3306","root","");
mysql_select_db("dbproyecto");
$consulta = "SELECT * FROM areas WHERE Expediente=".$exp.";";
$result = mysql_query($consulta);
echo "<option value='Selecciona'><--Selecciona un area--></option>";
if ($row = mysql_fetch_array($result))
{
if ($row["area1"]==1)
{
echo "<option value='area1'>area1</option>";
}
if ($row["area2"]==1)
{
echo "<option value='area2'>area2</option>";
}
}
echo "</select>";
}
?>
</body>
</html>
Creo que lo he dejado más o menos resumido lo que tengo para evitar código innecesario xD