Foros del Web » Programando para Internet » Jquery »

Crear array segun atributos (JQuery)

Estas en el tema de Crear array segun atributos (JQuery) en el foro de Jquery en Foros del Web. Buenas gente, estoy utilizando el plugin datatables y nesesito definir un array de parametros. el array que nesesito es este: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : ...
  #1 (permalink)  
Antiguo 05/11/2012, 11:25
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Pregunta Crear array segun atributos (JQuery)

Buenas gente, estoy utilizando el plugin datatables y nesesito definir un array de parametros.

el array que nesesito es este:
Código Javascript:
Ver original
  1. $('#example').dataTable( {
  2.         "aoColumns": [
  3.             null,
  4.             null,
  5.             { "sSortDataType": "dom-text" },
  6.             { "sSortDataType": "dom-text", "sType": "numeric" },
  7.             { "sSortDataType": "dom-select" },
  8.             { "sSortDataType": "dom-checkbox" }
  9.         ]
  10.     } );

este array es para una tabla de 6 columnas, las dos primeras sin nada (null), otra con input, otra con input numericos, otra con select y otra con checkboxes.


mi objetivo es armar una funcion que recorra las cabeceras de la tabla y arme el array propuesto para cualquier tabla.

tengo este codigo que hice:

Código Javascript:
Ver original
  1. function Existe(IDC) {
  2.     if(IDC=='' || IDC==undefined || IDC==NaN || IDC==null) {
  3.         return false;
  4.     } else {
  5.         return true;
  6. }   }
  7. var Tipos = new Array();
  8.                 $('#example thead tr:first-child th').each( function () {
  9.                     Tip = $(this).data('tip');
  10.                     if(!Existe(Tip)) {
  11.                         var Aux = null;
  12.                     } else {
  13.                         var Aux = new Array();
  14.                         Aux['sSortDataType'] = Tip;
  15.                         Tip = $(this).data('sty');
  16.                         if(Existe(Tip)) {
  17.                             Aux['sType'] = Tip;
  18.                     }   }
  19.                     Tipos = Tipos.concat(Aux);
  20.                 } );
  21.  
  22.                 $('#example').dataTable({
  23.                     "aoColumns": Tipos
  24.                 });

con el cual pretendo recorrer la primer fila del thead y segun los atributos "Data-TIP" y "Data-STY" armar el array.

el encabezado html seria (por ejemplo algo asi)
Código HTML:
Ver original
  1. <Table id="example">
  2.                     <thead>
  3.                         <Tr class="filtros">
  4.                             <th></th>                    
  5.                             <th></th>
  6.                             <th></th>
  7.                             <th Data-TIP="dom-select"></th>
  8.                             <th></th>
  9.                             <th></th>
  10.                             <th Data-TIP="dom-checkbox"></th>  
  11.                         </Tr>
  12.                         <Tr>
  13.                             <Th>Codigo</Th>
  14.                             <Th>Cliente</Th>
  15.                             <Th>Telefono</Th>
  16.                             <Th>Direccion</Th>
  17.                             <Th>C.C.</Th>
  18.                         </Tr>
  19.                     </Thead>

el problema no radica en plugin sino en la forma en que estoy usando los array, alguien podria hecharme una mano??
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Última edición por NSD; 05/11/2012 a las 12:04
  #2 (permalink)  
Antiguo 05/11/2012, 12:51
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Sintaxis de un array multimencional

Hola gente que tal, habia abierto un tema en el foro jquery con un problema que me esta dejando

lo que quiero hacer es crear un array para usar como parametro, pero no logro hacerlo

la funcion recibe este array:
Código Javascript:
Ver original
  1. $('#example').dataTable( {
  2.         "aoColumns": [
  3.             null,
  4.             null,
  5.             { "sSortDataType": "dom-text" },
  6.             { "sSortDataType": "dom-text", "sType": "numeric" },
  7.             { "sSortDataType": "dom-select" },
  8.             { "sSortDataType": "dom-checkbox" }
  9.         ]
  10.     } );

lo que yo quiero hacer es ese mismo array crearlo afuera manualmente, alguien me hecha una mano con la estructura??

tengo lo siguiente:

Código Javascript:
Ver original
  1. var Tipos = new Array();
  2.                 Tipos[1]["sSortDataType"] = "";
  3.                 Tipos[2]["sSortDataType"] = "";
  4.                 Tipos[3]["sSortDataType"] = "dom-text";
  5.                 Tipos[4]["sSortDataType"] = "dom-text";
  6.                 Tipos[4]["sType"] = "numeric";
  7.                 Tipos[5]["sSortDataType"] = "dom-select";
  8.                 Tipos[6]["sSortDataType"] = "dom-checkbox";
  9.  
  10.                 $('#example').dataTable( {
  11.                     "aoColumns": Tipos
  12.                 });

alguien me ayudaria con la estructura muchas gracias
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 05/11/2012, 13:12
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Sintaxis de un array multimencional

buenas.
fíjate en el código inicial, especificamente la definición del array. el array contiene objetos literales.

Código:
"aoColumns": [
            null,
            null,
            { "sSortDataType": "dom-text" },
            { "sSortDataType": "dom-text", "sType": "numeric" },
            { "sSortDataType": "dom-select" },
            { "sSortDataType": "dom-checkbox" }
        ]
ahora fijate en tu definición del array, no declaras los objetos literales. además, te has saltado una posición del array, el índice cero. recuerda que los arrays siempre comienzan por cero.

Código:
var Tipos = new Array();
                Tipos[1]["sSortDataType"] = "";
                Tipos[2]["sSortDataType"] = "";
                Tipos[3]["sSortDataType"] = "dom-text";
                Tipos[4]["sSortDataType"] = "dom-text";
                Tipos[4]["sType"] = "numeric";
                Tipos[5]["sSortDataType"] = "dom-select";
                Tipos[6]["sSortDataType"] = "dom-checkbox";
básicamente lo que tienes que hacer es asignar un nuevo objeto como valor al elemento del array.
Código:
var Tipos = new Array();
Tipos[0] = null;
Tipos[1] = null;
Tipos[2] = new Object(); // te falto esta linea ;
Tipos[2]["sSortDataType"] = "dom-text";
Tipos[3] = new Object(); 
Tipos[3]["sSortDataType"] = "dom-text";
Tipos[3]["sType"] = "numeric";
....
otra alternativa era simplemente copiar la declaración del array literal.
Código:
var Tipos = [null, null,
            { "sSortDataType": "dom-text" },
            { "sSortDataType": "dom-text", "sType": "numeric" },
            { "sSortDataType": "dom-select" },
            { "sSortDataType": "dom-checkbox" }
        ]
PD: por favor, no dupliques los temas. menos si se trata del mismo asunto.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 05/11/2012, 13:36
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Crear array segun atributos (JQuery)

Cita:
PD: por favor, no dupliques los temas. menos si se trata del mismo asunto.
No fue con intencion de duplicar, me disculpo, si bien son del mismo problema lo tome como cosas diferentes por eso abri dos temas.

con respecto a tu solucion tenias razon, me ha servido para entender el concepto, y adaptado al problema original me quedo:

Código Javascript:
Ver original
  1. var Tipos = new Array();
  2.                 $('#example .filtros th').each( function () {
  3.                     var Aux = new Array();
  4.                     Aux["sSortDataType"] = '';
  5.                     Aux['sType'] = '';
  6.                     Tip = $(this).data('tip');
  7.                     if(Existe(Tip)) {                      
  8.                         Aux['sSortDataType'] = Tip;
  9.                         Sty = $(this).data('sty');
  10.                         if(Existe(Sty)) {
  11.                             Aux['sType'] = Sty;
  12.                     }   }
  13.                     Tipos = Tipos.concat({ "sSortDataType" : Aux["sSortDataType"] , "sType" : Aux['sType'] });
  14.                 } );

muchas gracias por tu ayuda!!
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: atributos, funcion, html, input, select, sintaxis
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:46.