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

Hola que modificaria de esto para que funcione

Estas en el tema de Hola que modificaria de esto para que funcione en el foro de Frameworks JS en Foros del Web. Hola estoy probando ajax y eh encontrado un fragmento de codigo que quisiese utilizar pero no se como modificarlo para mis necesidades se trata de ...
  #1 (permalink)  
Antiguo 25/03/2011, 11:47
 
Fecha de Ingreso: marzo-2011
Ubicación: lima
Mensajes: 25
Antigüedad: 13 años, 9 meses
Puntos: 0
Exclamación Hola que modificaria de esto para que funcione

Hola estoy probando ajax y eh encontrado un fragmento de codigo que quisiese utilizar pero no se como modificarlo para mis necesidades se trata de un select y el evento onchange.
Adjunto el codigo.

Código Javascript:
Ver original
  1. <div id="Direcciones">
  2.             <script language="JavaScript" type="text/javascript" src="ajax.js"></script>
  3.             <form id="form9" name="form9">
  4.                 <p>Direcciones</p>
  5.                 <select id ="transporte" size="5" onchange="almacenar('Almacenar_UD.php?id='+this.value)">
  6.                 </select>
  7.             </form></div>

La idea es que cuando seleccione un elemento este pase a una variable session

Código PHP:
Ver original
  1. <?php
  2. $_SESSION['ultima_direccion'] = $_GET['id'];
  3. echo "Recibio ".$_SESSION['ultima_direccion'];
  4. ?>

y la consulta ajax donde tengo la duda tremenda.
Código Javascript:
Ver original
  1. function objetoAjax(){
  2.     var xmlhttp=false;
  3.     try {
  4.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.     } catch (e) {
  6.         try {
  7.             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.         } catch (E) {
  9.             xmlhttp = false;
  10.         }
  11.     }
  12.  
  13.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.         xmlhttp = new XMLHttpRequest();
  15.     }
  16.     return xmlhttp;
  17. }
  18.  
  19. function almacenar(datos){
  20.     divResultado = document.getElementById('Direcciones');
  21.     ajax=objetoAjax();
  22.     ajax.open("GET", datos);
  23.     ajax.onreadystatechange=function() {
  24.         if (ajax.readyState==4) {
  25.             divResultado.innerHTML = ajax.responseText
  26.         }
  27.     }
  28.     ajax.send(null)
  29. }

Lo que sucede con este codigo ajax es que me recarga todo el div,y pierde los datos ,prove pasandole el di del select y pierdo los datos del select como solucionaria esto.Gracias.
  #2 (permalink)  
Antiguo 25/03/2011, 13:15
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Hola que modificaria de esto para que funcione

simple: colocarle al div en donde quieres los resultados id="Direcciones", que puede ser otro nuevo debajo del select, si le colocas el select o al div superior ese id, estarías recargándolo todo.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 25/03/2011, 19:52
 
Fecha de Ingreso: marzo-2011
Ubicación: lima
Mensajes: 25
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta Respuesta: Hola que modificaria de esto para que funcione

Hola tengo una duda mas con this.value paso el valor seleccionado ahora tengo la duda, y si quiero pasar todos los elementos del select con un array como lo pasaria.

El motivo es que cuando hago ese recargo el select desaparece y se imprime el valor que consigne en el echo.

Mi idea es con el array recuperado regenerar el select y mandarlo como impresion asi tendria el select presente aunque se borre con la recarga.
  #4 (permalink)  
Antiguo 25/03/2011, 22:24
 
Fecha de Ingreso: marzo-2011
Ubicación: lima
Mensajes: 25
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Hola que modificaria de esto para que funcione

Ya corregi el problema en el php recree los select y los hice imprimir asi no se pierden
  #5 (permalink)  
Antiguo 25/03/2011, 22:26
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Hola que modificaria de esto para que funcione

¿para que le vas a pasar todos los valores del select?, usa la lógica:

si en esta línea dice que innerHTML (o HTML Interno) es igual a la respuesta:
var divResultado = document.getElementById('Direcciones');
...
divResultado.innerHTML = ajax.responseText;

¿no te parece lógico que si le asignas ese contenido a la capa que tiene el select, pierdas el select?, la solución es más simple: crea otro div independiente (abajo, al lado, donde sea) y que ése sea tu objetivo
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 28/03/2011, 20:22
 
Fecha de Ingreso: marzo-2011
Ubicación: lima
Mensajes: 25
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Hola que modificaria de esto para que funcione

ok cree un div dentro del select y veo que funciona

Etiquetas: ajax, html, 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 08:07.