Foros del Web » Programando para Internet » Javascript »

Recibir parámetro en la misma página

Estas en el tema de Recibir parámetro en la misma página en el foro de Javascript en Foros del Web. Hola pues necesito de su gran ayuda, como puedo enviar y a la misma ves recibir un parametro en la misma pagina??? tengo esto @import ...
  #1 (permalink)  
Antiguo 08/12/2016, 11:20
 
Fecha de Ingreso: marzo-2013
Mensajes: 72
Antigüedad: 11 años, 1 mes
Puntos: 0
Recibir parámetro en la misma página

Hola pues necesito de su gran ayuda, como puedo enviar y a la misma ves recibir un parametro en la misma pagina???

tengo esto


Código PHP:
Ver original
  1. <a class="evcal_list_a desc_trig sin_val " gmtrig="1" >
  2.        <div class="age_grey-bg"></div>
  3.        <div class="age_colored-bg" bgcolor="#ff0000" style="background-color:#ff0000"></div>
  4.        <p class="evcal_cblock"><?php echo $row_fechas_agenda['vivo_fechas_dia_num']; ?></p>
  5.        <p class="evcal_desc"> <span class="evcal_desc2 evcal_event_title" itemprop="summary">
  6.      Salón 1
  7.        </span> <span class="evcal_desc_info"></span></p>
  8.        </a>


Lo que hace es que al seleccionar "Salón 1" se despliega una lista de los alumnos, pero como son muchos salones necesito que se desplieguen los de ese salón, estaba pensando en enviar parámetro como lo hace el href="pagina.php?var=dato..."

pero como es dinámico mi código y en una sola pagina no se como hacerlo y abajo siguen los otros salones.

pensaba en esto


Código PHP:
Ver original
  1. <a href="mismapagina.php?salon=<?php echo $row_salones['salon_num']; ?>" class="evcal_list_a desc_trig sin_val " gmtrig="1" >
  2.        <div class="age_grey-bg"></div>
  3.        <div class="age_colored-bg" bgcolor="#ff0000" style="background-color:#ff0000"></div>
  4.        <p class="evcal_cblock"><?php echo $row_fechas_agenda['vivo_fechas_dia_num']; ?></p>
  5.        <p class="evcal_desc"> <span class="evcal_desc2 evcal_event_title" itemprop="summary">
  6.      Salon 1
  7.        </span> <span class="evcal_desc_info"></span></p>
  8.        </a>
  #2 (permalink)  
Antiguo 08/12/2016, 11:29
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: Recibir parámetro en la misma página

Como los datos los obtienes de una base de datos, puedes hacer peticiones asíncronas (AJAX) por cada vez que se seleccione una opción, cargando así los datos que le corresponden. Para esto sería necesario que utilices un segundo archivo el cual realizaría la consulta a la base de datos y retornaría la información. Otra manera menos eficiente consiste en cargar toda la información desde el inicio y tan solo mostrar u ocultar los bloques con la información de cada salón según se seleccione cada opción.

__________________
«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 08/12/2016, 11:41
 
Fecha de Ingreso: marzo-2013
Mensajes: 72
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Recibir parámetro en la misma página

Ok, habrá algún manual para hacer esas peticiones asíncronas de AJAX??
  #4 (permalink)  
Antiguo 08/12/2016, 11:47
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: Recibir parámetro en la misma página

Claro. Hay muchas páginas en donde puedes aprender. Estas dos son las que me parecen las mejores para empezar:

- Mozilla Developer Network
- Librosweb.es

__________________
«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
  #5 (permalink)  
Antiguo 08/12/2016, 11:52
 
Fecha de Ingreso: marzo-2013
Mensajes: 72
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Recibir parámetro en la misma página

Esta todo revuelto :(
  #6 (permalink)  
Antiguo 08/12/2016, 13:11
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Recibir parámetro en la misma página

Yo tengo este "template" de ajax

Código Javascript:
Ver original
  1. function createREQ() {
  2.     try {
  3.     req = new XMLHttpRequest();
  4.     }
  5.     catch(err1){
  6.         try {
  7.         req = new ActiveXObject('Msxml2.XMLHTTP');
  8.         }
  9.         catch (err2) {
  10.             try {
  11.             req = new ActiveXObject("Microsoft.XMLHTTP");
  12.             }
  13.             catch (err3) {
  14.             req = false;
  15.             }
  16.         }
  17.     }
  18. return req;
  19. }
  20.  
  21. http = new createREQ();
  22.  
  23. function someXHTTPfunction(){
  24. //tipo de envio post. proceso.php es donde se hará el proceso PHP. true es que la comunicación será asíncrona
  25. http.open("POST", "proceso.php", true);
  26.  
  27. //header de esto no te preocupes mucho
  28. http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  29.  
  30. //tomamos valores...
  31. var varA = document.getElementById("someElement1").value;
  32. var varB = document.getElementById("someElement2").value;
  33.  
  34. //hacemos la petición
  35. http.send("var1="+varA+"&var2="+varB); 
  36. //Esto equivale a $_POST["var1"] con el valor de varA y $_POST["var2"] con el valor de varB en proceso.php  
  37.    
  38. //De aquí en adelante es la respuesta ajax y lo que tu harás con ella
  39.     http.onreadystatechange = function(){
  40.         if(http.readyState == 4 && http.status == 200){
  41.  
  42.         //Respuesta del proceso.php
  43.         respuestaHTTP = http.responseXML; //opcion 1 respuesta xml
  44.         respuestaHTTP = http.responseText; //opcion 2 respuesta texto
  45.         // la respuesta debe ser xml o texto, tu debes elejir entre estas dos cual quieres
  46.  
  47.         //DO SOMETHING HERE...
  48.         }
  49.     };
  50. }

Aclaración yo uso el método post y no get, porque me gusta más y punto. ahí quien prefiera get.

Esto te puede encaminar un poco, hay muchos métodos para hacer más eficientes el uso de ajax, pero creo que este sirve como ejemplo.

De todos modos, si te sumerges en ajax, creo que es necesario que estudies los métodos y atributos de ajax.

Saludos y espero te sirva

  #7 (permalink)  
Antiguo 08/12/2016, 13:20
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: Recibir parámetro en la misma página

No es nada complicado. Solo tienes que utilizar una instancia del objeto XMLHttpRequest y sus métodos para hacer la petición asíncrona, recibir la respuesta y procesarla.

Un ejemplo:

Archivo 1:
Código HTML:
Ver original
  1. <form id="buscador" action="clientes.php" method="get">
  2.     <label>Ingrese el nombre del cliente:</label>
  3.     <input type="text" name="nombreCli" />
  4.     <input type="submit" value="Buscar" />
  5. </form>
  6.  
  7. <section id="clientes"></section>
Código Javascript:
Ver original
  1. var formulario = document.querySelector("#buscador"), //El formulario
  2.     input = document.querySelector("[name=nombreCli]"), //La caja de texto
  3.     listado = document.querySelector("#clientes"); //La sección para mostrar los resultados
  4.  
  5. formulario.addEventListener("submit", function(event){
  6.     event.preventDefault(); //Cancelamos el envío
  7.  
  8.     var ajax = new XMLHttpRequest(), //Creamos una instancia del objeto XMLHttpRequest
  9.         metodo = this.method, //El método HTTP de envío será el establecido en el formulario
  10.         ruta = this.action + "?nombre=" + input.value, //El destino será el establecido en el formulario y se adjuntará una cadena de consulta con el valor escrito en la caja de texto
  11.         asincrono = true; //La petición será asíncrona
  12.  
  13.     ajax.open(metodo, ruta, asincrono); //Establecemos los parámetros para iniciar la petición
  14.     ajax.addEventListener("load", function(){ //Ejecutamos acciones cuando se complete la petición
  15.         if (this.status == 200){ //Si la petición se completó exitosamente
  16.             listado.innerHTML = this.responseText; //Se muestra el resultado en la sección
  17.         }
  18.     }, false);
  19.     ajax.send(); //Se inicia la petición
  20. }, false);

Archivo 2 (clientes.php):
Código PHP:
Ver original
  1. $conexion = new mysqli('server', 'user', 'password', 'database');
  2.  
  3. if ($conexion->connect_errno) exit($conexion->connect_errno . ': ' . $conexion->connect_error);
  4. $nombre = $conexion->real_escape_string(strip_tags(trim($_GET['nombre'])));
  5. $consulta = "SELECT cli_nombre, cli_documento, cli_domicilio FROM tbl_clientes WHERE cli_nombre LIKE '%$nombre%'";
  6. $resultados = $conexion->query($query) or exit($conexion->errno . ': ' . $conexion->error);
  7.  
  8. if ($resultados->num_rows){
  9.     while ($filas = $resultados->fetch_assoc()){
  10.         echo <<<FdW
  11.             <ul>
  12.                 <li>Nombre: {$filas['cli_nombre']}</li>
  13.                 <li>N° de documento: {$filas['cli_documento']}</li>
  14.                 <li>Domicilio: {$filas['cli_domicilio']}</li>
  15.             </ul>
  16. FdW;
  17.     }
  18.     $resultados->free();
  19. }
  20. else{
  21.     echo 'No se encontraron coincidencias en la búsqueda';
  22. }
  23.  
  24. $conexion->close();

En el primer archivo, tenemos un formulario con el cual se puede buscar uno o varios datos de clientes ―almacenados en una base de datos― cuyo nombre coincida o su estructura sea similar al que el usuario haya escrito en la caja de texto del formulario de búsqueda. Al momento de lanzar la búsqueda, se cancela el envío normal ―que implica recargar la ventana― y se realizan las acciones para iniciar la petición asíncrona. Una vez que se obtiene una respuesta, esta se muestra en un elemento HTML; en este caso, un elemento <section>.

En el segundo archivo, se realiza la conexión a la base de datos, se realiza la búsqueda y, si se encuentran coincidencias, se imprimen. Dicha impresión de datos será la respuesta que se devolverá al primer archivo.

Este es un ejemplo de una petición asíncrona básica utilizando un método de envío HTTP constructor, como lo es GET. Con otros métodos, como POST, DELETE o PUT, es necesario modificar las cabeceras, además de que, los datos a enviar, se colocan como argumento del método .send(), alineados en una cadena de consulta.

__________________
«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

Etiquetas: javascript+html, php+base+de+datos
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 09:52.