buenas...
luego de la primera consulta no te guarda nada mas en el array porque siempre estas indicando el mismo indice. tienes que aumentar en uno el indice
c. por otro lado, si bien entendi la parte de los campos, tienes que crear un formato de la consulta devuelta para que javascript pueda separarlos. por ejemplo, puedes usar el formato de parametros en URL. o sea, ampersand (&) para separar los campos y valores, e asignacion (=) para parear el campo con el valor. luego en javascript lo procesas partiendo la cadena con
split por el caracter ampersand y luego asignacion. no necesariamente tiene que ser con estos dos caracteres, puede ser cualquiera de tu preferencia. el punto es que no conflija con los campos ni su contenido. una vez procesado el string, guardas el resultado en el array.
de todos modos, aca te dejo una funcion que utilizo para ese proposito.
Código:
String.prototype.query = function(split, begin){ // if(!this.length)return undefined;
var split = split || ['&', '='], query = this, queryObj = {};
if(split.constructor != Array || split.length != 2)throw new TypeError('Excepted type of argument not valid or argument lenght size not allowed.');
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;
}
return queryObj;
}