last day (15 days later) » 

14:37
1
Q: Post con Ajax siempre da error pero igual funciona

Ccccccccctengo el siguiente código en el cual primero obtengo en un array los checkbox seleccionados para luego hacer un Post de dichos datos que lo único que hace es cambiarle el estado en la base de datos, o sea, los campos por defecto se encuentran en la base de datos con el valor "Activo" y la idea es...

Que devuelbes en la respuesta?
Intenta un console.log(error.statusCode) y dinos que muestra en la consola.
@Criss Hola, en la respuesta trae la misma página, no sé si es a eso a lo que te referías.
@Einer Hola, puse el console.log dentro del error antes del alert pero no trae error, no sé si estará bien puesto ahí ya que soy nuevo con ésto de Ajax.
Si a eso me referia, en todo caso estas redireccionando y luego mostras una alerta cosa que no es correcto, quita los alert y intenta depurar con console como dijo einer y nos cuentas que pasa
@Criss quité los alert pero lo único que trae es ésto (aunque supongo que no tiene algo que ver) "GET localhost/favicon.ico?1505221257 404 (Not Found)"
14:37
Hiciste un console a tu respuesta? Para ver q te llega? Y si desde tu servidor no estas mandando en formato json tu respuesta quita eso el datatype de tu ajax
@Criss sí, hice un console pero no sé por qué no dice nada, quité el dataType y ahora funciona lo único que al final de la url le agrega un "undefined" muchas gracias a los 2 por su ayuda!
Revisa bien como estas mandando la url en tu respuesta, para que funcione correctamente. Si tienes cualquier otra duda. Comentala por aca saludos.
Da la impresión de algún problema con el DOM (ver esta pregunta]). ¿Tienes tu código jQuery encerrado en un bloque como este: $(function() { //Código jQuery }); ? Esto es lo mismo que document.ready, sólo que éste es ya obsoleto desde jQuery 3.
@A.Cedano Hola, no, el código está así tal cual como puse arriba solo adentro de un script sin eso que dices.
Pues todo lo que haga referencia a elementos del DOM debe estar encerrado por function de la manera que te digo, ya que eso ejecuta el código cuando el DOM esté completamente cargado, así, cuando intentes hacer referencia a algún elemento del DOM no tendrás problemas de undefined. En tu caso, puede que estés intentando usar elementos que aún no están cargados y eso te está dando problemas. Funcione o no en este caso, siempre debes encerrar el código que use elementos del DOM dentro de function
14:37
@A.Cedano buena aclaración, lo tendré en cuenta pero lamentablemente para éste caso no fue la solución (ya sé que dijiste "funcione o no"), lo raro es que si lo dejo como estaba al código funciona, lo único que cambia es eso que comenté del "undefined" pero si pongo como vos me dijiste entonces hago click en los botones y es como si no se dispararan las funciones, por las dudas estoy usando el framework yii (si es que sirve de algo esa información), saludos!
En lo referente al error, la función error trae esta firma: error (jqXHR jqXHR, String textStatus, String errorThrown). ¿Podrías cambiar la función y hacer un console.log() de el parámetro jqXHR?
Puede que haya un error en el archivo que corre en el servidor, aunque los datos se actualicen bien, puede que ocurra un error luego. Sería bueno que muestres el contenido de ese archivo, imagino que es PHP, es muy probable que tenga error en alguna parte. Si puedes revisa el log de errores, llamado generalmente error_log en la carpeta search. También es raro lo que comentas sobre el function, o sea, el hecho de que no funciona así. ¿Puedes mostrar el HTML que invoca a tu función function archivar()...?
@DavidDPG Hola, hice lo que me dijiste y me da éste error al hacer click: "ReferenceError: archivar is not defined" lo raro es que el método sí está definido.
@A.Cedano en el html tengo lo siguiente: <?= CHtml::button('Archivar',array('onClick'=>'archivar();'));?> voy a ver eso que me has dicho.
No uso yii, y no sé lo que significará esto en el botón: array('onClick'=>'archivar();') ¿significa que recuperas en un array lo que se responde cuando haces clic en el botón?
Para una mejor comprencion deberias editar tu pregunta, agregar el codigo del lado del servidor que llamas desde ajax, y el html tambien
14:37
@A.Cedano para ser sincero no tengo ni idea, hace 2 días que me pusieron a trabajar con esto que es todo nuevo para mi y todavía no llegué a esa parte mas que mirando en otros ejemplos, por cierto, pude solucionar lo del undefined cambiando el window.location.href = response.redirect a window.location.href = ''
@Criss Sí, tenés razón, voy a editarla con la solución a la que se llegó, muchas gracias a todos por los comentarios!

last day (15 days later) »