Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Pasar arreglo de php a js (response)

Estas en el tema de Pasar arreglo de php a js (response) en el foro de Jquery en Foros del Web. Hola gente. Tengo un problema en un login que estoy haciendo.. Desde php paso un arreglo Código PHP: $resultado  = array( 'estado'  =>  'true' ); return print( ...
  #1 (permalink)  
Antiguo 18/05/2018, 15:07
 
Fecha de Ingreso: abril-2016
Ubicación: Cordoba
Mensajes: 22
Antigüedad: 8 años, 7 meses
Puntos: 1
Pasar arreglo de php a js (response)

Hola gente.

Tengo un problema en un login que estoy haciendo..

Desde php paso un arreglo

Código PHP:
$resultado = array('estado' => 'true');
return print(
json_encode($resultado)); 
y en js

Código:
success: function(response){
	if (response.estado == "true"){
......
No me toma la variable..
No se si lo estoy pasando mal o que.. Estuve leyendo,pero no encontre una solucion..

La idea es que me redireccione a otra pagina..

Cualquier ayuda es bienvenida.. Gracias!!
  #2 (permalink)  
Antiguo 18/05/2018, 15:43
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Pasar arreglo de php a js (response)

lo haria así:

Código PHP:
Ver original
  1. $resultado = array('estado' => 'true');
  2.     echo json_encode($resultado);

Código Javascript:
Ver original
  1. $.post('url')
  2. .done(function(resp){
  3.     var datos = eval("("+resp+")");
  4.     if(datos.estado){
  5.         //loquesea
  6.     }
  7. })
  8. .fail(fucntion(err){
  9.  
  10. })
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 18/05/2018, 16:19
 
Fecha de Ingreso: abril-2016
Ubicación: Cordoba
Mensajes: 22
Antigüedad: 8 años, 7 meses
Puntos: 1
Respuesta: Pasar arreglo de php a js (response)

Gracias xfxstudios por responder..

Te muestro mi funcion, validar code

Me falto decir que es para controlar un formulario..

cuando hago

Código PHP:
Ver original
  1. $resultado = array('estado' => 'true');
  2.     echo json_encode($resultado);

Solo me muestra


{"estado":"true"}
en JSON
estado: "true"

Y desde el js

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $("#loginForm").bind("submit", function() {
  3.        
  4.         $.ajax({
  5.             type: $(this).attr("method"),
  6.             url: $(this).attr("action"),
  7.             data: $(this).serialize(),
  8.             beforeSend: function(){
  9.                 $("#loginForm button[type=submit]").html("enviando...");
  10.                 $("#loginForm button[type=submit]").attr("disabled","disabled");
  11.             },
  12.             success: function(response){
  13.  
  14.                 if (response.estado == "true"){

Y solo ambia el boton de nombre y lo deshabilita..

Lo demas no lo hace.. Ademas, me manda a la pagina en donde valido el logo y me muestra lo de JSON que puse arriba..
  #4 (permalink)  
Antiguo 19/05/2018, 00:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Pasar arreglo de php a js (response)

Como recibes un objeto JSON, debes especificarlo en las opciones del método $.ajax():

Código Javascript:
Ver original
  1. dataType: "JSON"

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 19/05/2018, 05:47
 
Fecha de Ingreso: abril-2016
Ubicación: Cordoba
Mensajes: 22
Antigüedad: 8 años, 7 meses
Puntos: 1
Respuesta: Pasar arreglo de php a js (response)

Gracias alexis por la respuesta..

Pero no funciona..

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $("#loginForm").bind("submit", function() {
  3.        
  4.         $.ajax({
  5.             type: $(this).attr("method"),
  6.             url: $(this).attr("action"),
  7.             data: $(this).serialize(),
  8.             dataType: "JSON",
  9.             beforeSend: function(){
  10.                 $("#loginForm button[type=submit]").html("enviando...");
  11.                 $("#loginForm button[type=submit]").attr("disabled","disabled");
  12.             },
  13.             success : function(response){
  14.                 if (response.estado){

No funciona, lo unico que cambia es el boton.. dice (enviando), y lo desactiva..
El problema es que no recibe bien el mensaje que le paso por json..

Igual es raro.. habra alguna otra forma de hacer esto?.

Desde ya gracias por la respuesta!
  #6 (permalink)  
Antiguo 19/05/2018, 07:44
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Pasar arreglo de php a js (response)

y que te muestra la consola de depuración de tu navegador? verifica si aparece algún error y cual es

Prueba así a ver:

Código Javascript:
Ver original
  1. $(function(){
  2.  
  3.     //detecto el clic del boton enviar
  4.     $("#boton").click(function(e){
  5.         e.preventDefault()//detengo el envio del formulario
  6.     })
  7.  
  8.     //Serializo los campos
  9.     var data = $('formulario').serialize();
  10.  
  11.     //Cargo los cambios del boton
  12.     $("#loginForm button[type=submit]").html("enviando...");
  13.     $("#loginForm button[type=submit]").attr("disabled","disabled");
  14.  
  15.     //Envio la peticion
  16.     $.post('url',data)
  17.     .done(function(resp){
  18.         //Cargo la respuesta
  19.         console.log(resp);
  20.         $("#loginForm button[type=submit]").html("Enviar");
  21.         $("#loginForm button[type=submit]").removeAttr("disabled");
  22.     })
  23.     .fail(function(err){
  24.         //muestro el error
  25.         console.log(err)
  26.         $("#loginForm button[type=submit]").html("Enviar");
  27.         $("#loginForm button[type=submit]").removeAttr("disabled");
  28.     })
  29.  
  30. })
__________________
[email protected]
HITCEL

Última edición por xfxstudios; 19/05/2018 a las 07:50
  #7 (permalink)  
Antiguo 19/05/2018, 09:03
 
Fecha de Ingreso: abril-2016
Ubicación: Cordoba
Mensajes: 22
Antigüedad: 8 años, 7 meses
Puntos: 1
Respuesta: Pasar arreglo de php a js (response)

Bueno, la solucion era:


Código PHP:
Ver original
  1. header('Content-Type: application/json');
  2.  
  3. $resultado = array("estado" => "true");
  4. return print(json_encode($resultado));



Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.  
  3.     $("#loginForm").bind("submit", function() {
  4.        
  5.         $.ajax({
  6.             type: $(this).attr("method"),
  7.             url: $(this).attr("action"),
  8.             data: $(this).serialize(),
  9.             beforeSend: function(){
  10.                 $("#loginForm button[type=submit]").html("enviando...");
  11.                 $("#loginForm button[type=submit]").attr("disabled","disabled");
  12.             },
  13.             success: function(response){
  14.  
  15.                 if (response.estado == "true"){
  16.  
  17. ..

xfxstudios gracias por responder.. No me mostraba errores, solo que me mandaba el msj en json (aparecia en el developers tools en network.. y buscaba el archivo .php en el que enviaba el msj en json, y en response aparecia bien el msj.. estado:true.. Pero,no lo recibia bien, se ve..
Pero, asi como esta quedo bien..

Voy a tener en cuenta lo que respondiste para controlar futuros problemas..

Ojala le sirva a alguien..

Gracias a todos!.

Etiquetas: arreglo, js, php, variable
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 12:51.