Foros del Web » Programando para Internet » Javascript »

select que refresque una pagina

Estas en el tema de select que refresque una pagina en el foro de Javascript en Foros del Web. Buenas tardes. Colegas requiero ayuda en una cuestión importante, deseo realizar una pagina en php donde se presenta un select, en donde la opción que ...
  #1 (permalink)  
Antiguo 15/05/2014, 16:11
Avatar de letingel  
Fecha de Ingreso: noviembre-2013
Ubicación: neiva
Mensajes: 41
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta select que refresque una pagina

Buenas tardes.

Colegas requiero ayuda en una cuestión importante, deseo realizar una pagina en php donde se presenta un select, en donde la opción que se seleccione tiene una variable posteriormente sacada de una base de datos, una vez se selecciona la opción se muestre unos datos obtenidos de la base de datos pero en la misma pagina, yo me imagino que se tendrá que realizar en ajax pero no se por donde empezar, agradezco toda la ayuda prestada.

EL codigo solo del select el resto es html basico
Código PHP:
<?php 
$query3 
"SELECT * FROM Actividades WHERE id_contrato = '$id_contrato'";
              
$row3 mysql_query($query3,$conexion);
              
$num_rowsmysql_num_rows($row3);
                echo 
'<select style="width:200px" onchange="this.style.width=200" name="actividad">';
                echo 
'<option value="">Actividades</option>';
                     for(
$i=0;$i<$num_rows;$i++){
                    
$result=mysql_fetch_assoc($row3);
                    echo 
'<option value="'.$result["id_act"].'">'.$result["Descripcion"].'</option>';
                                                 }        
?>
una imagen de la pagina:

[IMG]http://www.development.letingel.com/select.PNG[/IMG



Resalto que cuando se seleccione un item del select debe aparecer sus datos correspondientes de la base de datos, ese recuadro que aparece debajo del select no cambia para nada, mi principal inconveniente es con el select y su actualización en la misma pagina.

Gracias.
  #2 (permalink)  
Antiguo 15/05/2014, 18:52
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: select que refresque una pagina

Como bien dices, con una petición asíncrona (Ajax), lograrías tu cometido. En el archivo en el que se encuentra el <select>, debes tener el siguiente código JS:

Código Javascript:
Ver original
  1. var select = document.getElementsByName("actividad")[0],
  2.     salida = document.getElementById("salida"), //Elemento para listar los datos
  3.     ajax = function(url, objetivo){
  4.         var xhr = window.XMLHttpRequest ?
  5.                   new XMLHttpRequest() :
  6.                   new ActiveXObject("Microsoft.XMLHTTP") ||
  7.                   new ActiveXObject("Msxml2.XMLHTTP");
  8.  
  9.         xhr.open("GET", url, true);
  10.         xhr.onreadystatechange = function(){
  11.             if (xhr.readyState == 4){
  12.                 switch (xhr.status){
  13.                     case 200:
  14.                         objetivo.innerHTML = xhr.responseText;
  15.                         break;
  16.                     case 404:
  17.                         objetivo.innerHTML = "La dirección brindada no existe";
  18.                         break;
  19.                     default:
  20.                         objetivo.innerHTML = "Error: " + xhr.status;
  21.                         break;
  22.                 }
  23.             }
  24.         };  
  25.         xhr.send(null);
  26.     };
  27.  
  28. select.addEventListener("change", function(){
  29.     ajax("proceso.php?" + this.name + "=" + this.value, salida);
  30. }, false);

Con esto, mostrarás en el elemento de id salida (o el que desees asignarle), el resultado de la petición, la cual será lo que devuelva el archivo proceso.php. En dicho archivo, deberás recibir el dato como $_GET['actividad'], realizas la búsqueda en la tabla de la base de datos y emites un resultado, el cual será lo que la función Ajax finalmente asignará como contenido del elemento salida. Puedes tener a la función Ajax en un archivo JS aparte, así la reutilizas en todos los archivos en los que necesites realizar peticiones asíncronas.

Si tienes dudas acerca del uso de peticiones asíncronas (Ajax), nada mejor para despejarlas que leyendo una buena guía sobre el tema: http://librosweb.es/ajax/

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 16/05/2014, 06:25
Avatar de letingel  
Fecha de Ingreso: noviembre-2013
Ubicación: neiva
Mensajes: 41
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: select que refresque una pagina

Muchas gracias, lo estudiare para ver a fondo como es su funcionamiento.

Etiquetas: html, php, select, variable
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 08:11.