Comunidad de diseño web y desarrollo en internet online

Añadir parametros a un array multidimensional

Citar            
MensajeEscrito el 08 Nov 2013 10:41 am
Hola. estoy enviando datos a un servidor y en el array multidimensional y puede haber diferentes números de arrays dentro de este dependiendo de si el usuario hace click en unos checkboxes. Tengo lo siguiente:

Código ActionScript :

function enviar_registro():void{
   var register:HttpClient = new HttpClient();
   var uri2:URI = new URI(baseUrlRegistro);
   user_info =[{name:"user[name]", value:name_text}, 
              {name:"user[first_surname]", value:surname_text},
         {name:"user[accepts_conditions]", value:termsChecked},
         {name:"user[email]", value:email_text},
         {name:"user[interest_ids][]", value:1}];
      }


Lo que necesito es, si se hace check en algun checkbox añadir una variable más al array user. Es decir, si hago check en el combo1 y en combo3 añadir al final:

Código ActionScript :

{name:"user[interest_ids][]", value:1},
{name:"user[interest_ids][]", value:3}];


He probado con push, que añade elementos al final del array, pero solo me permite añadir un argumento y necesito los dos.

¡Cómo se podría hacer?

Gracias.

Por plug

78 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Nov 2013 11:22 am
Separa los objetos por comas (,) al llamar a push(). El método push admite un número variable de parámetros. Pero vamos, si te da problemas (que no creo) haz dos llamadas al método push :)

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 08 Nov 2013 11:29 am
Hola Lukanicos, lo que he hecho a sido poner el siguiente código en el checkbox:

Código ActionScript :

check1.addEventListener(MouseEvent.CLICK, onClick);
function onClick(evt:MouseEvent):void {
   if(ID1clicked == false){
      interestsID1 = "1";
      ID1clicked = true;
      user_info.push([{name:"user[interest_ids][]", value:"1"}]);
      trace(ID1clicked);
   }else if(ID1clicked == true){
      interestsID1 = "";
      ID1clicked = false;
   }
}

Pero me da el siguiente error:

Código :

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
   at openDays_fla::calendario_mc_1/onClick()

Por plug

78 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Nov 2013 12:23 pm
Por lo que has puesto en el primer mensaje parece que creas el array en

enviar_registro

Si no has ejecutado este método antes de hacer click el array no se habrá creado e imagino que es el error que te está dando.

Por otro lado veo que en el push encierras el objeto entre corchetes, por tanto, lo que estás añadiendo es otro array. No se si te has equivocado al escribirlo, porque imagino que lo único que quieres añadir es

{name:"user[interest_ids][]", value:"1"}

sin los corchetes.
Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 12 Nov 2013 11:01 am
Al final lo he coseguido de la siguiente manera:

En la función enviar compruebo si los checkboxes están clickados o no y le añado al array solo los elementos que están clickados:

Código ActionScript :


Código ActionScript :

function enviar_registro():void{
   var register:HttpClient = new HttpClient();
   var uri2:URI = new URI(baseUrlRegistro);
   user_info =[{name:"user[name]", value:name_text}, 
              {name:"user[first_surname]", value:surname_text},
              {name:"user[accepts_conditions]", value:termsChecked},
              {name:"user[email]", value:email_text},
      }
     if(ID1clicked == true)
     {
   user_info.push({name:"user[interest_ids][]", value:"1"});
     }
...


Gracias!

Por plug

78 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.