Foros del Web » Programando para Internet » PHP »

Recoger datos de AJAX

Estas en el tema de Recoger datos de AJAX en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/11/2012, 01:54
 
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
  #2 (permalink)  
Antiguo 07/11/2012, 02:07
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Recoger datos de AJAX

Hola:

Aparte de que deberías olvidarte de la colección document.all para adaptar tu código a todos los navegadores, te diré que para subir archivos debes enviar el formulario (aunque puede ser a un iframe oculto)...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: ajax, recoger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:42.