Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/09/2012, 16:48
Avatar de chalchis
chalchis
 
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta filtro con grep en aun array asociativo

Hola amigos estoy llenando un array con json
y ya tengo un buscador de registros en base a una columna
este mas o menos mi array


var data= [
{"id" : "1", "cuenta":"333", "surname" : "a surname"},
{"id" : "2", "cuenta":"5555", "surname" : "b surname"},
{"id" : "3", "cuenta":"6677", "surname" : "c surname"}
]





Código Javascript:
Ver original
  1. data2 = jQuery.grep(data, function(n, i)//creamos un array temporal con los datos que concuerden con la busqueda
  2.                 {                  
  3.                     buscartx = texto.toLowerCase();//convertimos a minusculas la palabra solicitada
  4.                     //nota: stripVowelAccent() es una funcion que remplaza los acentos
  5.                     buscartxt = stripVowelAccent(buscartx);//remplazamos los acentos de la palabra
  6.                     //------------------------------------
  7.                     var patron = new RegExp(buscartxt, "gi");//creamos un patron de busqueda                   
  8.                     //aqui se indica en que columna se debe realizar la busqueda n.cuenta.toLowerCase()
  9.                     //recordemos que este campo viene oculto en el submenu del filtro de busqueda
  10.                     var filtroselec = jQuery('#selFiltroCampo').val();
  11.                     var cadena = n.cuenta.toLowerCase();//convertimos los titulos en minusculas, que se encuentre en data que es el array original
  12.                     cadena = stripVowelAccent(cadena);//remplazamos los acentos para que la busqueda sea mas efectiva al comparar
  13.                     return cadena.match(patron);//verificamos si cumple con el patron de busqueda, si concuerda se queda si no se descarta                 
  14.                 });

todo va bien pero resulta que debo hacer la busqueda dinamica en disitinta columna definido por el usuario este seria mi form de busqueda



Shot at 2012-09-03



Shot at 2012-09-03

la parte donde debo cambiar la columna

es en esta linea

var cadena = n.cuenta.toLowerCase();

cuenta es uno de las columnas del array, como puedo hacerlo dinamico con alguna otra columna,

trate de hacer algo como esto pero me marca error de tipo de dato, me guie de este post http://stackoverflow.com/questions/1...-is-a-variable

var = valorDinamico = 'otrocampo'
var cadena = n[valorDinamico ].toLowerCase();

o estoy haciendo algo mal saludos

espero sus comentarios
saludos y gracias
__________________
gerardo

Última edición por chalchis; 03/09/2012 a las 19:03