Recogiendo valores de formulario con javascript

Quiero construir una página con 2 frames en la que la dirección de estos se escriba en javascript (write) usando datos de un formulario get (que se pueda escribir en la barra)
Conseguí un código para hacerlo, pero no me sirve del todo, pues me escribe todos los campos y valores seguidos sean muchos o pocos
El código es el siguiente:
<html>
<head>
<title>Ejemplo de recepcion de parametros</title>
<script language="Javascript" type="text/javascript">
<!--
// Zone Web, este es un ejemplo de recopilador de formularios en javascript.
var cadena=document.location.search;
// Le quitamos el interrogante
cadena=cadena.substring(1,cadena.length);
// Separamos los distintos &
var parametros=cadena.split("&");
// Separamos los =
var valores=new Array;
var nombres=new Array;
var valores_legibles=new Array;
var temporal= new Array;
var posicion=null;
var total=null;
for (var i=0; i<parametros.length;i++){
temporal=parametros.split("=");
valores=temporal[1];
nombres=temporal[0];
// para presentarlos en pantalla quitamos los signos +
// que en realidad son espacios y "unescapamos" los
// caracteres no convencionales (acentos etc)
valores_legibles=unescape(valores);
posicion=valores_legibles.indexOf("+");
while (posicion > -1){
total=valores_legibles.length;
valores_legibles=valores_legibles.substring(0,posicion)+" "+valores_legibles.substring(posicion+1,total);
posicion=valores_legibles.indexOf("+");
}
}
//-->
</script>
</head>
<body>
<H1>Recopilador de formularios</H1>
<BR>
<script language="Javascript" type="text/javascript">
for (var i=0;i<parametros.length;i++){
document.write("El parametro <B>"+nombres+"</B> tiene el valor <I>"+valores_legibles+"</I><BR>");
}
</script>
</body>
</html>
¿Me podrían indicar que debo cambiarle a este código para que me pueda dar los valores por separado?
Sino, me es imposible escribir con javascript write la dirección de los 2 frames de la página a partir de lo que escriba

1 respuesta

Respuesta
1
He probado el código y efectivamente, va perfecto. Si lo llamas desde un formulario de otra página:
<form action="LAPAGINA" method="get">
<input type="text" name="text1" value="valor1">
<input type="text" name="text2" value="valor2">
<input type="text" name="text3" value="valor3">
<input type="text" name="text4" value="valor4">
<input type="text" name="text5" value="valor5">
<input type="text" name="text6" value="valor6">
<input type="submit" value="enviar">
</form>
Te coge perfectamente el valor de todos los parametros.
No entiendo muy bien tu pregunta, porque si recoges bien los parámetros, para hacer lo de los frames puedes hacer:
for(i=0;i<NUMERO_DE_FRAMES;i++){
document.writeln('<frame src'+valores_legibles+'>');
}
Bueno, el frame con todos los atributos que quieras... y siempre que el parámetro sea el nombre de la página que quieres que se cargue en el frame (o su dirección completa, vamos)
Si lo que te preocupa es el numero de parámetros pasados, pues corta el ciclo for en 2 en lugar de tomar todos los parámetros que haya...
for (var i=0; i<parametros.length;i++)
Toma TODOS los parametros que se pasen, sean cuantos sean. Si en lugar de ello pones:
for (var i=0; i<2;i++)
Solo cogerás los dos primeros. Después puedes meter los document. write con el valor de esos dos unicos parametros recogidos.
Espero haber acertado. Si no lo he hecho, por favor, afina la pregunta un poco más :D
La verdad es que yo pretendía obtener los valores por separado, pero lo que tu me dices por el momento ya me sirve.
Ademas, he encontrado un código que creo que podre modificar por si más adelante quiero usar esas variables independientemente.
Gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas