Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/07/2009, 19:22
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Obtener datos de un Form mediante JS

puedes obtener los datos desde cualquier documento que se ha enviado la informacion mediante location.search. no obstante, el unico metodo de formulario que puedes utilizar es GET. esto porque javascript no tiene suficiente soporte para trabajar con los headers HTTP. location.search devuelve un string compuesto del formato ?nombre=valor&... donde nombre=valor se repite segun la informacion enviada en el formulario. el siguiente codigo es una funcion que utilizo para trabajar con los pares nombre/valor de cualquier string:
Código:
String.prototype.query = function(name, split, begin){ // if(!this.length)return undefined;
if(!split)var split = ['&', '='];
if(split.constructor != Array || split.length != 2)throw new TypeError('Excepted type of argument not valid or argument lenght size not allowed.');
var query = this;
var queryObj = {};
if(begin)query = query.replace(begin, '');
query = query.split(split[0]);
	while(query.length){
	var pair = query.shift().split(split[1]);
		if(pair[0] in queryObj){
		if(queryObj[pair[0]].constructor != Array)queryObj[pair[0]] = new Array(queryObj[pair[0]]);
		queryObj[pair[0]].push(decodeURIComponent(pair[1]));
		}
		else queryObj[pair[0]] = (pair[1])? decodeURIComponent(pair[1]): undefined;
	}
if(name != null)return queryObj[name];
return queryObj;
}
lo utilizas de la siguiente manera:
Código:
// asumiendo que el string de location.search es "?nombre=zerokilled&foro=javascript&tema=obtener+datos";
var _get = location.search.replace("?", "").query();
var nombre = _get['nombre'];
var foro = _get['foro'];
var tema = _get['tema'];
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.