Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/11/2012, 01:54
GaaraRafez
 
Fecha de Ingreso: octubre-2012
Mensajes: 10
Antigüedad: 11 años, 6 meses
Puntos: 0
Recoger datos de AJAX

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