Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2008, 12:59
Elalux
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 4 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>