Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/01/2010, 12:26
Avatar de zerokilled
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: Enviar array desde javascript a php

te soy honesto. tengo conocimiento lo que es JSON pero en mi experiencia nunca lo que utilizado para enviar datos, ya sea desde cliente-servidor o servidor-cliente. debido a mi posible ignorancia, puede que falle en algo. por ende, me basare en lo que me parece obvio y en lo poco que he leido acerca del tema.

en todo caso, en el sentido mas puro JSON no es nada mas que uno o varios objetos construido con sintaxis literales. por ejemplo, en el siguiente codigo puedes ver que no se utilizan las super-clases para crear los diferentes objetos, como por ejemplo Array y Object. esto es gracia a que el lenguaje admite sintaxis literal.
Código:
user = {
name: "SUSMO",
id: 230925,
message: 128,
url: "http://www.forosdelweb.com/miembros/susmo/",
friends: [{
	name: "Malenko",
	url: "http://www.forosdelweb.com/miembros/malenko/"
	}, {
	name: "manzarinaa",
	url: "http://www.forosdelweb.com/miembros/manzarinaa/"
	}, {
	name: "stone_neo",
	url: "http://www.forosdelweb.com/miembros/stone_neo/"
	}
],
private_message: false,
public_profile: true
};
¿como se utiliza para enviarse este dato desde el cliente al servidor?
como ya se explico en el tema pasar array javascript mediante php, javascript no tiene ningun tipo de conexion con lenguajes de servidor. de modo que no es posible pasar esa informacion como objeto directamente al servidor. para ello es necesario convertir ese objeto a un tipo de dato que ambos lenguajes comprendan, el cual naturalmente son los string. por tanto, no importa la interaccion de las aplicaciones (si cliente-servidor o servidor-cliente) ni los metodos de envios (GET, POST, AJAX) es necesario descomponer ese objeto a string. para ello se utiliza una funcion especial que basicamente genera el codigo fuente pero en forma de string. una vez descompuesto esta listo para ser enviado, y aqui de nuevo puede presentarse las limitaciones que antes comente.

¿metodos de envio?
se me ocurre que a traves de un formulario lo puedes enviar. basicamente la misma forma como hicistes con el array, asignando el valor en un campo oculto. tambien puedes enviarlo por AJAX. particularmente con AJAX, si usas algun framework, tienes la ventaja que ese dato JSON puedes constuir los valores a enviarse de forma mas manejable. me explico utilizando el mismo ejemplo del codigo. con una funcion especial se puede preparar el string de la siguiente forma para ser enviado, fijate que tiene el mismo formato que los datos por URL. no es exactamente de esta forma pero es una posible.
Código:
name=SUSMO&id=230925&message=128&url=http://www.forosdelweb.com/miembros/susmo/&friends_name[]=Malenko&friends_url=http://www.forosdelweb.com/miembros/malenko/&friends_name[]=manzarinaa&friends_url[]=http://www.forosdelweb.com/miembros/manzarinaa/&friends_name[]=stone_neo&friends_url[]=http://www.forosdelweb.com/miembros/stone_neo/&private_message=0&public_profile=1
luego en el servidor no necesitas analizarlo como JSON, sino que directamente por $_POST o $_GET puedes leer los datos. pero en el primer caso, si se envia el JSON serializado en un camp, tienes que usar la funcion para analizar JSON.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 13/01/2010 a las 12:31