Foros del Web » Programando para Internet » Javascript »

como declarar un array en una funcion?

Estas en el tema de como declarar un array en una funcion? en el foro de Javascript en Foros del Web. Hola amigos tengo una funcion en la que le paso variables del tipo string, int y un array, mi problema esta en la definicion de ...
  #1 (permalink)  
Antiguo 12/03/2008, 02:58
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
como declarar un array en una funcion?

Hola amigos tengo una funcion en la que le paso variables del tipo string, int y un array, mi problema esta en la definicion de la funcion:

nombredelafunción(option,title,url,id_user,modulos )

donde:
option,title,url ->string
id_user -> int
modulos -> Tiene que ser un array

como lo hago?
porque en la siguiente pagina me dice que la longitud del array modulos =1, cuando deberia ser 8

Este es el codigo donde le paso las variables y las recojo en una pagina php

win.setURL('modules/user_permissions/' + url + '?opcion=' + option + '&id_user=' + id_user + '&modulos=' + modulos);

que es lo que hago mal?

Mil gracias por adelantado
  #2 (permalink)  
Antiguo 12/03/2008, 03:19
 
Fecha de Ingreso: febrero-2008
Ubicación: EH
Mensajes: 117
Antigüedad: 16 años, 2 meses
Puntos: 0
De acuerdo Re: como declarar un array en una funcion?

Hola Laufwerk,

Eso de pasar un array tal cual pero suena un poco mal, al final para la página que esta recibiendo los parametros, modulos es un parametro, y por lo que creo todos los recoge como strings.
Por que no intentas, en vez de enviar el array tal cual, ponerlo en un string, separandolos por un caracter especial, y enviarlo como string.

var modulos_str = ""
var separador = "|"

for(i=0;i<longitudDelArray;i++)
{
modulos_str=modulos_str + modulos[i] + separador;
}

En la página que recoges los parametros, lees el string con la función split("|") y creas un array.

No se si lo has entendido. Yo por lo menos lo hago así,

Suerte,
  #3 (permalink)  
Antiguo 12/03/2008, 03:43
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: como declarar un array en una funcion?

q me dices!!! no puede recibir arrays el javascript?
Entonces lo que deberia hacer es desmontar el array y convertirlo en un string, para que el javascript lo vuelva a montar en un array y finalmente para pasarlo como otro array? o lo paso como string y en php cuando lo reciba lo vuelvo a montar?

Vaya faenon, creo q debe haber algo mas facil, no?
  #4 (permalink)  
Antiguo 12/03/2008, 04:04
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: como declarar un array en una funcion?

Hola:

Para recibir arrays en php el nombre debe terminar con un par de corchetes ("[]"), pero la forma de crear la url es replicando ese nombre...

"&modulos[]=" + modulos[0] + "&modulos[]=" + modulos[1] + ... + luego leyendo en php:

$m = $_GET["modulos"];... y count($m) ya tendría sentido.

Si quieres enviar un array sería así... recogerlos con javascript podría no ser necesario los corchetes, pero tiene su complejidad (respuesta en las FAQs)...

Por lo tanto el convertir el array a un string (usando split por ejemplo) podría ser buena solución... con php usarías implode().

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 12/03/2008, 04:14
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: como declarar un array en una funcion?

gracias caricatos, lo pruebo y os digo algo
  #6 (permalink)  
Antiguo 12/03/2008, 05:17
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: como declarar un array en una funcion?

estoy en ello...
de echo estoy pasando una matriz de 2x8, es decir que $modulos es lo siguiente:

Modulos count : 2
modulo 0 : 8
nombre [0][0] : a_home
nombre [0][1] : customers
nombre [0][2] : domains
nombre [0][3] : bills
nombre [0][4] : user_permissions
nombre [0][5] : groups
nombre [0][6] : contacts
nombre [0][7] : mailing
modulo 1 : 8
nombre [1][0] : Inicio
nombre [1][1] : Clientes
nombre [1][2] : Dominios
nombre [1][3] : Facturación
nombre [1][4] : Permisos Usuarios
nombre [1][5] : Grupos
nombre [1][6] : Contactos
nombre [1][7] : E-Mail a Grupos

se lo paso de php a javascript y después de javascript a php

Código PHP:
        echo '        <a href="javascript:openModalDialog(\'edit\',\''.$comun_permisos_usuarios.'\',\'users_permisions_form.php\','.$users[$i][0].','.$modulos.')"><img src="./images/edit.png" alt="Editar" class="dgImgLink"></a>'
i en javascritp
Código:
function nombrefuncion(option,title,url,id_user,modulos){
win.setURL('modules/user_permissions/' + url + '?opcion=' + option + '&id_user=' + id_user + '&modulos=' + modulos);
}

Última edición por Laufwerk; 12/03/2008 a las 06:00
  #7 (permalink)  
Antiguo 12/03/2008, 07:39
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: como declarar un array en una funcion?

necesito pasar esta mini tabla o array de 2 dimensiones de php a Javascript
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 08:01.