Foros del Web » Programando para Internet » PHP »

arrays con php y javascript

Estas en el tema de arrays con php y javascript en el foro de PHP en Foros del Web. Mi problema es el siguiente: Paso por url un array de javascript. Luego lo intento leer en una funcion php pero no obtengo los valores ...
  #1 (permalink)  
Antiguo 07/04/2004, 03:21
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 13 años, 8 meses
Puntos: 5
Sonrisa arrays con php y javascript

Mi problema es el siguiente:

Paso por url un array de javascript. Luego lo intento leer en una funcion php pero no obtengo los valores del array.

¿no es posible trabajar con arrays con php y javascript?

Un saludo a todos.
  #2 (permalink)  
Antiguo 07/04/2004, 05:22
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Quizas es que la URL generada por tu javascript no es la correcta. La entrada del PHP es la URL, si la URL no es correcta no puede hacer nada. Si tu codigo javascript no genera la URL correcta, es "culpa" de tu javascript, no de tu PHP. Y lo mismo con PHP. Por ejemplo, si en PHP intentas pasar un array haciendo:
Código PHP:
<?php
$a
=array(1,2,3);
echo 
"<a href='pp.php?a=$a'>link</a>";
veras que pp.php nunca recibira el array correctamente, porque ese PHP no genera la URL correcta.

Si se pueden pasar arrays de javascript a PHP por URL, pero de la forma correcta.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 07/04/2004, 09:22
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 13 años, 8 meses
Puntos: 5
Hola josemi. Es que tampoco entiendo muy bien cuando dices pasar correctamente la URL. Mi trozo de codigo involucrado es:

window.location.href="http://localhost/web7/experimentos_creados.php?eliminar_exp="+miarray

donde miarray lo generé con javascript de la siguiente manera:

var miarray=new Array(num_checkbox)

y luego lo fue rellenando por ejemplo de la siguiente forma:

for(i=1;i<6;i++)
miarray[i]=i

Eso es javascript. Luego en php lo recojo como $miarray pero no obtengo valores en el array
  #4 (permalink)  
Antiguo 07/04/2004, 09:32
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
¿Cual es la URL que te aparece en la barra de direcciones? Porque ahora con una prueba rapida me da que muestra el array como una lista de valores separados por coma.

Entonces lo que recibe PHP es esa cadena de texto, los valores separados por comas en una sola variable PHP. Haz:
Código PHP:
echo $_GET['eliminar_exp']; 
para comprobar el formato en que te llega ese parametro.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 07/04/2004, 09:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio habría que "serializar" ese array si es que javacript o tus rutinas javacript no lo hacen ya de por sí..

Por ejemplo si haces
$a=array(1,2,3);
echo "<a href='pp.php?a=$a'>link</a>";

en pp.php obtendrás un "Array" (así tal cual) como valor de $_GET['a'] .. por qué no lo serializastes ...(con serialize() y unserialize() .. hay un ejemplo completo de uso con más detalles en las FAQ's del foro).

Supongo que javacript también tendrá sus métodos para hacer lo mismo si vas a propagar por el URL un array generado desde javascript ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 07/04/2004, 09:57
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 13 años, 8 meses
Puntos: 5
He hecho lo que me has dicho:

echo $_GET['eliminar_exp']; y obtengo los valores correctos.
Mi error estaba en que estaba utilizando en el codigo php como nombre del array "miarray" en vez de "elimnar_exp"

Me salen los datos separados por comas.

Solo tengo un problema:

El primero dato que obtengo es siempre un 4 que no se de donde sale. Ejemplo:

4, 55, 68

¿sera que he metido algo raro por la url sin que lo sepa?

Gracias por ayudarme y un saludo.
  #7 (permalink)  
Antiguo 07/04/2004, 10:03
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Haz un
Código PHP:
echo $_SERVER['QUERY_STRING']; 
para ver los parametros que recibe el script. ¿Esta alli el 4? Si es asi, es que tu codigo javascript lo mete de una forma u otra.

Pregunta en el foro de javascript si tu codigo javascript esta mal.

Saludos.

PD: Creo recordar que los arrays en javascript empiezan en el indice 0, asi que quizas tienes en miarray[0] el valor 4.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 07/04/2004, 10:08
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 13 años, 8 meses
Puntos: 5
Ya se lo que es. Es que el primer dato que me mete en el array es el tamaño de este. Un poco raro no?
Si cambio el tamaño del array a tres por ejemplo, entonces el primer valor que obtengo es el 3.

a lo mejor al crear arrays con javascript el primer valor del array es su tamaño.

Gracias a todos por ayudarme.
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 22:23.