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

Enviar datos desde menu de formulario y actualizar en la misma pagina

Estas en el tema de Enviar datos desde menu de formulario y actualizar en la misma pagina en el foro de Frameworks JS en Foros del Web. Saludos maestros, he aquí mi cuestión. Tengo un menú <select> dentro de un formulario, ok cada vez que alguien selecciona una opción del menú, mediante ...
  #1 (permalink)  
Antiguo 09/02/2008, 12:59
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
Enviar datos desde menu de formulario y actualizar en la misma pagina

Saludos maestros, he aquí mi cuestión.

Tengo un menú <select> dentro de un formulario, ok cada vez que alguien selecciona una opción del menú, mediante un onChange que llama a una función en JavaAcript (getData -se muestra al final de este post-) cargo un archivo en PHP que está en el servidor y lo muestro en mi página sin necesidad de recargarla, ok hasta ahí no hay problema.

El problema viene porque el archivo que traigo desde el server necesita recibir el valor del <option > seleccionado del menú<select>, pero no se cómo enviarle ese valor ya que cuando se especifica el archivo a traer en el <select> aún no sé que opción va a seleccionar el usuario, a continuación pongo el código:

Menú:

Cita:
<select name="elemento" id="elemento" onChange="getData('recibido.php', 'targetDiv')">
<option value="1">Primer elemento</option>
<option value="2">Segundo elemento</option>
<option value="3">Tercer Elemento</option>
<option value="4">Cuarto Elemento</option>
</select>
Contenido archivo que traigo desde el Server (recibido.php)
Cita:
<?
echo "Valor recibido: ".$_GET['elemento'];
?>
Donde deseo que se muestre el resultado de recibido.php pongo:
Cita:
<div id="targetDiv">
The fetched data will go here.
</div>
Como ven, no tengo mayor problema para procesar el archivo recibido.php sin recargar la página, el problema es que no se como enviarle el valor del <option> seleccionado.

Desde ahora agradezco cualquier ayuda.

P.D. Por si a alguien le sirve, pongo el código JavaScript que se encarga de traer el archivo desde el server sin recargar la página.

Cita:
<script language = "javascript">
var XMLHttpRequestObject = false;

if (window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function getData(dataSource, divID)
{
if(XMLHttpRequestObject) {
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("GET", dataSource);

XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}

XMLHttpRequestObject.send(null);
}
}
</script>
  #2 (permalink)  
Antiguo 09/02/2008, 14:22
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
Re: Enviar datos desde menu de formulario y actualizar en la misma pagina

Resuelto!! por si a alguien le sirve les cuento como:

Simplemente en lugar de llamar a la función a través de un evento onChangue la llamo a través de un evento onClick en cada uno de los <option> del menú, de tal forma que queda como sigue:

Cita:
<select name="elemento" id="elemento">
<option value="1" onClick="getData('recibido.php?elemento=1', 'targetDiv')">Primer elemento</option>
<option value="2" onClick="getData('recibido.php?elemento=2', 'targetDiv')">Segundo elemento</option>
<option value="3" onClick="getData('recibido.php?elemento=3', 'targetDiv')">Tercer Elemento</option>
<option value="4" onClick="getData('recibido.php?elemento=4', 'targetDiv')">Cuarto Elemento</option>
</select>

Saludos.

  #3 (permalink)  
Antiguo 09/02/2008, 14:41
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
Re: Enviar datos desde menu de formulario y actualizar en la misma pagina

Canté victioria demasiado pronto. No funciona con Explorer 6.0

Parece ser que IE/6.0 no puede disparar un onClick dentro de un <option> de un formulario.

Voy a postear este problema en el foro específico de Javascript a ver si alguien me hecha un mano.

Saludos.

Última edición por Elalux; 09/02/2008 a las 16:20
  #4 (permalink)  
Antiguo 10/02/2008, 23:37
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: Enviar datos desde menu de formulario y actualizar en la misma pagina

asi...
Código:
<select name="elemento" id="elemento" onChange="getData('recibido.php?id='+this.value, 'targetDiv')">
y en el php recojes asi:
Código:
 echo $_GET['id'];
listo con eso solucionas el problema...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #5 (permalink)  
Antiguo 21/02/2008, 13:27
Avatar de mahia  
Fecha de Ingreso: enero-2008
Ubicación: La Tierra
Mensajes: 69
Antigüedad: 16 años, 3 meses
Puntos: 0
Re:ayuda

Hola por favor tu crees que me puedas decir como yo envio la informacion de un formulario desde una imagen.
  #6 (permalink)  
Antiguo 21/02/2008, 13:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Enviar datos desde menu de formulario y actualizar en la misma pagina

A que te refieres desde una imagen?

Saludos.
  #7 (permalink)  
Antiguo 28/11/2009, 12:43
 
Fecha de Ingreso: agosto-2008
Mensajes: 587
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Enviar datos desde menu de formulario y actualizar en la misma pagina

el codigo completo quedaria asi ?

ya que no me funciona:

index.html
Código PHP:
<script language "javascript">
var 
XMLHttpRequestObject false;

if (
window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (
window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function 
getData(dataSourcedivID)
{
if(
XMLHttpRequestObject) {
var 
obj document.getElementById(divID);
XMLHttpRequestObject.open("GET"dataSource);

XMLHttpRequestObject.onreadystatechange = function()
{
if (
XMLHttpRequestObject.readyState == &&
XMLHttpRequestObject.status == 200) {
obj.innerHTML XMLHttpRequestObject.responseText;
}
}

XMLHttpRequestObject.send(null);
}
}
</script>

<select name="elemento" id="elemento" onChange="getData('recibido.php?id='+this.value, 'targetDiv')">
<option value="1" onClick="getData('recibido.php?elemento=1', 'targetDiv')">Primer elemento</option>
<option value="2" onClick="getData('recibido.php?elemento=2', 'targetDiv')">Segundo elemento</option>
<option value="3" onClick="getData('recibido.php?elemento=3', 'targetDiv')">Tercer Elemento</option>
<option value="4" onClick="getData('recibido.php?elemento=4', 'targetDiv')">Cuarto Elemento</option>
</select>

<br><br>

<div id="targetDiv">
The fetched data will go here.
</div> 
recibido.php
Código PHP:
<?php

echo "Valor recibido: ".$_GET['elemento'];

echo 
$_GET['id'];

?>
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:06.