Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Combobox dependiente ajax php y envio de datos a otra pagina

Estas en el tema de Combobox dependiente ajax php y envio de datos a otra pagina en el foro de Frameworks JS en Foros del Web. Buenas. Tengo un cobobox que deja seleccionar una carrera y luego otro combobox en el que se cargan los cursos de la carrera seleccionada. El ...
  #1 (permalink)  
Antiguo 06/05/2010, 09:02
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Combobox dependiente ajax php y envio de datos a otra pagina

Buenas.

Tengo un cobobox que deja seleccionar una carrera y luego otro combobox en el que se cargan los cursos de la carrera seleccionada. El problema que tengo es que necesito añadir un boton para enviar esos datos a una pagina que posteriormente llamara a un archivo php que usara los dos datos seleccionados.

Pero por mas que pruebo como enviar esos datos a cualquier sitio no se envian. Nunca se envia nada, funciona correctamente para mostrar el segundo combobox pero nada mas.

No os pongo los formularios e historias que he intentado a ver si lo conseguia. Por si veis que hay que añadir para que se pueda:

Seleccionar_dependientes.php

Código PHP:
<?php

function generaCarrera()
{
    include 
'conexion.php';
    
conectar();
    
$consulta=mysql_query("SELECT id, nombre FROM carrera");
    
desconectar();

    
// Voy imprimiendo el primer select compuesto por las carreras
    
echo "<select name='carrera' id='carrera' onChange='cargaContenido(this.id)'>";
    echo 
"<option value='0'>Elige</option>";
    while(
$registro=mysql_fetch_row($consulta))
    {
        echo 
"<option value='".$registro[0]."'>".$registro[1]."</option>";
    }
    echo 
"</select>";
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<!-- 



Este contenido es de libre uso y modificación bajo la siguiente licencia: http://creativecommons.org/licenses/by-nc-sa/2.5/deed.es

Sobre el reconocimiento:
Todos los códigos han sido realizados con la idea de que sirvan para colaborar con el aprendizage de aquellos que se están introduciendo
en estas tecnologías y no con el objetivo de que sean utilizados directamente en sitios web. No obstante si utilizas algún código en tu sitio 
(ya sea sin modificar o modificado), o si ofreces los fuentes para descargar o si bien decides publicar alguno de los artículos debes cumplir con:
-Colocar un link a http://www.formatoweb.com.ar/ajax/ visible por tus usuarios como forma de mención a la fuente original del contenido.
-Enviar un correo a [email protected] informando la URL donde el contenido se ha publicado o se va a publicar en un futuro.
-Si publicas los fuentes para descargar este texto no debe ser eliminado ni alterado.

Más ejemplos y material sobre AJAX en: http://www.formatoweb.com.ar/ajax/
Cualquier sugerencia, crítica o comentario son bienvenidos.
Contacto: [email protected]



-->

<html lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Seleccionar carrera y curso</title>
<link rel="stylesheet" type="text/css" href="select_dependientes.css">
<script type="text/javascript" src="select_dependientes.js"></script>
</head>

<body>
                <div id="demo" style="width:600px;">
                    <div id="demoDer">
                        <select disabled="disabled" name="curso" id="curso">
                            <option value="0">Selecciona opci&oacute;n...</option>
                        </select>
                    </div>
                        <div id="demoIzq"><?php generaCarrera(); ?></div>
                       </div>    
</body>
</html>
Seleccionar_dependientes_proceso.php

Código PHP:
<?php
// Array que vincula los IDs de los selects declarados en el HTML con el nombre de la tabla donde se encuentra su contenido
$listadoSelects=array(
"carrera"=>"carrera",
"curso"=>"curso"
);

function 
validaSelect($selectDestino)
{
    
// Se valida que el select enviado via GET exista
    
global $listadoSelects;
    if(isset(
$listadoSelects[$selectDestino])) return true;
    else return 
false;
}

function 
validaOpcion($opcionSeleccionada)
{
    
// Se valida que la opcion seleccionada por el usuario en el select tenga un valor numerico
    
if(is_numeric($opcionSeleccionada)) return true;
    else return 
false;
}

$selectDestino=$_GET["select"]; $opcionSeleccionada=$_GET["opcion"];

if(
validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
{
    
$tabla=$listadoSelects[$selectDestino];
    include 
'conexion.php';
    
conectar();
    
$consulta=mysql_query("SELECT id, nombre FROM $tabla WHERE id_carrera='$opcionSeleccionada'") or die(mysql_error());
    
desconectar();
    
    
// Comienzo a imprimir el select
    
echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
    echo 
"<option value='0'>Elige</option>";
    while(
$registro=mysql_fetch_row($consulta))
    {
        
// Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
        
$registro[1]=htmlentities($registro[1]);
        
// Imprimo las opciones del select
        
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
    }            
    echo 
"</select>";
}
?>
Y las tablas necesarias:
Código:
create table carrera(
id int(2) primary key, 
nombre char(10));

insert into carrera values(1, "carrera1");
insert into carrera values(2, "carrera2");
insert into carrera values(3, "carrera3");

create table curso(
id int(2) primary key,
nombre char(10),
grupo int(2),
id_carrera int(2),
foreign key (id_carrera) references carrera(id));

insert into curso values(1, "primero", 3, 1);
insert into curso values(2, "segundo", 4, 1);
insert into curso values(3, "tercero", 2, 1);

insert into curso values(4, "primero", 5, 2);
insert into curso values(5, "segundo", 3, 2);
insert into curso values(6, "tercero", 8, 2);

insert into curso values(7, "primero", 9, 3);
insert into curso values(8, "segundo", 8, 3);
insert into curso values(9, "tercero", 7, 3);

A ver que os parece...
  #2 (permalink)  
Antiguo 07/05/2010, 02:41
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Combobox dependiente ajax php y envio de datos a otra pagina

Creo que las variables que tengo no puedo pasarlas a otro archivo porque estoy venga a probar ni no hay forma. No se pasa nada, imprime en blanco todo el rato...


¿Alguna idea? u otra forma de ponerlo para que pueda hacerse...
  #3 (permalink)  
Antiguo 08/05/2010, 03:05
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Combobox dependiente ajax php y envio de datos a otra pagina

Nada, estoy probando incluso a imprimirlas en un fichero desde Select_dependientes_proceso.php y no soy capaz, no se imprime nada.
  #4 (permalink)  
Antiguo 13/04/2013, 17:22
 
Fecha de Ingreso: abril-2013
Mensajes: 1
Antigüedad: 11 años
Puntos: 0
Respuesta: Combobox dependiente ajax php y envio de datos a otra pagina

Que tal, es algo sencillo lo que quieres hacer.

En primera instancia seleccionas una carrera en un combo, ese valor del combo lo mandas por ajax al otro combo para arrojar las carreras.

En el nuevo combo necesitas 1 variable oculta dentro del formulario donde guardaras la id de la carrera y seleccionaras en este combo los cursos de la carrera.

Nadamas pones un boton de enviar donde envies el formulario con la variable oculta (id de la carrera) y la seleccion del curso del combo actual.

Espero haberte ayudado

Etiquetas: ajax, combobox, dependiente, envio, php
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 16:06.