Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Enviar un objeto por ajax?

Estas en el tema de Enviar un objeto por ajax? en el foro de Javascript en Foros del Web. Hola!. Estoy en javaScript y creo un arreglo var arreglo = new Array(); Y en arreglo[0] = "Información aquí". arreglo[1]= "Información aquí también". arreglo[2]= "Y ...
  #1 (permalink)  
Antiguo 12/11/2013, 20:05
 
Fecha de Ingreso: febrero-2013
Mensajes: 43
Antigüedad: 11 años, 2 meses
Puntos: 0
Busqueda Enviar un objeto por ajax?

Hola!. Estoy en javaScript y creo un arreglo var arreglo = new Array();
Y en arreglo[0] = "Información aquí".
arreglo[1]= "Información aquí también".
arreglo[2]= "Y aquí".
arreglo[3]= "Información aquí".

Ahora, quiero enviar todo el objeto arreglo[] por ajax para recibirlo en un php y en php empezar otra vez a:

$elArreglo=$_POST[arreglo];

imprimir($elArreglo[0]);
imprimir($elArreglo[1]);
imprimir($elArreglo[2]);
imprimir($elArreglo[3]);

Se puede hacer algo así? O por favor alguna opción?

Gracias!
  #2 (permalink)  
Antiguo 12/11/2013, 20:17
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Enviar un objeto por ajax?

Podrías usar algo así en javascript para serializar el objeto:
Código:
<script>
var arreglo=[];
arreglo[0] = "Información aquí";
arreglo[1]= "Información aquí también";
arreglo[2]= "Y aquí";
arreglo[3]= "Información aquí";
var output=JSON.stringify(arreglo);
alert(output);
</script>
Y en php esto otro, para desserializarlo:
Código PHP:
$arr=json_decode('["Información aquí","Información aquí también","Y aquí","Información aquí"]',true);
print_r($arr); 
  #3 (permalink)  
Antiguo 12/11/2013, 20:33
 
Fecha de Ingreso: febrero-2013
Mensajes: 43
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Enviar un objeto por ajax?

O sea que envío output y en php lo recibo
$variable = $_POST['output'];
$arr = json_decode($variable);

print_r($arr);

Ok gracias!

Última edición por Jesueto; 12/11/2013 a las 20:37 Razón: Razonamiento tardío xD
  #4 (permalink)  
Antiguo 12/11/2013, 20:41
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Enviar un objeto por ajax?

Edito: es tal como lo mencionás en el post anterior (yo escribí este mientras vos lo modificabas)


Algo así:
Código PHP:
<?php 
if(isset($_POST['pp'])){
    echo 
'<pre>';
    
print_r(json_decode($_POST['pp'],true));
    echo 
'</pre>';
    exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script>
onload=function(){
    var arreglo=[];
    arreglo[0] = "Información aquí";
    arreglo[1]= "Información aquí también";
    arreglo[2]= "Y aquí";
    arreglo[3]= "Información aquí";
    document.getElementById('pp').value=JSON.stringify(arreglo);
}
</script>
</head>

<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'?>">
<input name="" type="submit" value="Probar" />
<input type="hidden" name="pp" id="pp">
</form>
</body>
</html>
  #5 (permalink)  
Antiguo 12/11/2013, 20:46
 
Fecha de Ingreso: febrero-2013
Mensajes: 43
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Enviar un objeto por ajax?

Hahahahaha perfecto!
Gracias por tu tiempo, me sirvió muchísimo!
Gracias!
  #6 (permalink)  
Antiguo 12/11/2013, 21:36
 
Fecha de Ingreso: febrero-2013
Mensajes: 43
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Enviar un objeto por ajax?

Cita:
Iniciado por Panino5001 Ver Mensaje
Edito: es tal como lo mencionás en el post anterior (yo escribí este mientras vos lo modificabas)


Algo así:
Código PHP:
<?php 
if(isset($_POST['pp'])){
    echo 
'<pre>';
    
print_r(json_decode($_POST['pp'],true));
    echo 
'</pre>';
    exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script>
onload=function(){
    var arreglo=[];
    arreglo[0] = "Información aquí";
    arreglo[1]= "Información aquí también";
    arreglo[2]= "Y aquí";
    arreglo[3]= "Información aquí";
    document.getElementById('pp').value=JSON.stringify(arreglo);
}
</script>
</head>

<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'?>">
<input name="" type="submit" value="Probar" />
<input type="hidden" name="pp" id="pp">
</form>
</body>
</html>

Aún sigues por aquí? D:
Me tira en blando, no me imprime nada >.<
hay algún error o soy demasiado noob para no notar que sí pasa algo?

No me salía con mi ejemplo así que copié y pegué el tuyo para ver qué se supone que haría y me manda nada, en blanco. Ayuda! xd >.< :c
  #7 (permalink)  
Antiguo 12/11/2013, 22:33
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Enviar un objeto por ajax?

Debería funcionar. Quizá estás testeando con un navegador muy viejo o quizá tu servidor no tiene soporte JSON. Para comprobarlo podrías quitar el json_decode
  #8 (permalink)  
Antiguo 12/11/2013, 23:58
 
Fecha de Ingreso: febrero-2013
Mensajes: 43
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Enviar un objeto por ajax?

Hola! estoy utilizando google chrome en su última versión si mal no sé. Y debería soportar JSON mi servidor, pero bueno, trato sin el código ese de json_decode en php y sí me tira mi cadena de caracteres. Pero ahora está entera la cadena y quiero que vuelvan a ser cadenas independientes. Por ejemplo, el ejemplo que me hiciste me tira:

[\"Información aquí\",\"Información aquí también\",\"Y aquí\",\"Información aquí\"]

Partiendo de eso, cómo hago para poder guardar en variables cada oración idependiente de tal modo que me quede:

$unaVariable = "Información aquí";
$segundaVariable = "Información aquí también"
$terceraVariable = "Y aquí";
$cuartaVariable = "Información aquí";

En primera, esas diagonales invertidas por qué salen? me estorban. Ya traté de reemplazarlas con espacios en blanco con el str_replace pero no quiere xd

Ya que tengo mi cadena String del lado de servidor, cómo los vuelvo a poner independienteS?

Muchas gracias y perdón por las molestias!
  #9 (permalink)  
Antiguo 13/11/2013, 06:04
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Enviar un objeto por ajax?

Las comillas escapadas tienen que ver con la configuración del servidor (en concreto, con la directiva magic_quotes_gpc). Para eliminarlas podés usar la función stripslashes
El problema que veo es que no tenés el soporte json activado en el servidor. Pero no es grave, cuando no había muchos servidores que soportaran php 5 usábamos funciones sustitutas como estas: http://tinsology.net/2011/04/php-jso...-alternatives/

Etiquetas: ajax, json, php, php+ajax
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 13:50.