Ir al contenido


Foto

Ayuda AJAX Jquery


  • Por favor identifícate para responder
18 respuestas en este tema

#1 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 09 julio 2014 - 09:56

Amigos, por favor su ayuda.. he estado mas de 1 semana pensando en esto y no me resulta.

lo pregunte mas atras por modal form pero creo que fue muy complejo lo que quise preguntar, lo voy a resumir un poco.

tengo la siguiente Funcion con Ajax:



delphi
  1. function validaUsuario(o){
  2.  
  3. o.addClass( "ui-state-error" );
  4. updateTips( "seccion ocupada" );
  5. var hola = $.ajax({
  6.  
  7. url:"validar.php",
  8.  
  9. data:{"validar":"true","asignaturas":$("#Asignaturas").val(),"usuario":$("#Seccion").val()},
  10. contentType:"application/x-www-form-urlencoded",
  11. dataType:"html", //xml,html,script,json
  12. error: function(){
  13. alert("ha ocurrido un error");
  14. },
  15. ifModified:false,
  16. processData:true,
  17. type:"POST",
  18. timeout:3000,
  19. success:function(datas){
  20.  
  21. datas;
  22. }
  23.  
  24.  
  25.  
  26. });
  27. alert(hola);
  28.  
  29. }



necesito que el alert me muestre un valor de lo que retorna la funcion ajax.

si llamo a esa funcion el alert me muestra: [object Object], el alert lo debo mostrar fuera de la funcion ajax, no me sirve adentro.. en el fondo quiero hacer un return, pero si me muestra el alert el valor, que es true o false, lo cambio por return.

por favor su ayuda que me tiene recomplicado ese caso.

si pongo el alert dentro de la funcion AJAX me lo muestra, pero necesito generar el alert fuera de ella.

Saludos

  • 0

#2 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 10 julio 2014 - 09:47

en ves de alert, verifica con

console.log(hola);
Si es un objeto te dira que tiene.


Ahora, hablando de AJAX si estas esperando una respuesta, es necesario esperar a la respuesta antes de que la imprimas, por lo que si no esperas no podrás imprimir la informacion. Aquí una explicación.


delphi
  1. function prepareDocument() {
  2.     getAverageRating(1, function(data) {
  3.         alert(data);
  4.     });
  5. }
  6.  
  7. function getAverageRating(pageId, fn) {
  8.  
  9.     $.ajax({
  10.         url: "../services/rating.ashx?action=getAverageRating&pageId=" + pageId,
  11.         dataType: "text",
  12.         type: "GET",
  13.         data: {},
  14.         error: function (err) {
  15.             displayDialogBox("Error", err.toString());
  16.         },
  17.         success: function (data) {
  18.             fn(data);
  19.         }
  20.     });
  21.  
  22. }




  • 0

#3 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 10 julio 2014 - 11:23

me entrega esta respuesta el objeto:



delphi
  1. readyState
  2.  
  3. 4
  4.  
  5. responseText
  6.  
  7. "true"
  8.  
  9. status
  10.  
  11. 200
  12.  
  13. statusText
  14.  
  15. "OK"
  16.  
  17. abort
  18.  
  19. function(statusText)
  20.  
  21. always
  22.  
  23. function()
  24.  
  25. complete
  26.  
  27. function()
  28.  
  29. done
  30.  
  31. function()
  32.  
  33. error
  34.  
  35. function()
  36.  
  37. fail
  38.  
  39. function()
  40.  
  41. getAllResponseHeaders
  42.  
  43. function()
  44.  
  45. getResponseHeader
  46.  
  47. function(key)
  48.  
  49. overrideMimeType
  50.  
  51. function(type)
  52.  
  53. pipe
  54.  
  55. function(/* fnDone, fnFail, fnProgress */)
  56.  
  57. progress
  58.  
  59. function()
  60.  
  61. promise
  62.  
  63. function(obj)
  64.  
  65. setRequestHeader
  66.  
  67. function(name, value)
  68.  
  69. state
  70.  
  71. function()
  72.  
  73. statusCode
  74.  
  75. function(map)
  76.  
  77. success
  78.  
  79. function()
  80.  
  81. then
  82.  
  83. function(/* fnDone, fnFail, fnProgress */)


en el fondo lo que necesito retornar es: responseText "true".

intente colocar return responseText(console.log(hola));

pero me tira error.. por favor de su ayuda.. Saludos
  • 0

#4 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 12 julio 2014 - 09:28

Adjunto un pantallazo.. donde se observa, que la respuesta del ajax me entrega si es true o false.. pero el alert.. no me muestra ese valor.. y me lo muestra como indefinido.

Imagen Enviada

por favor, su ayuda.

Saludos.
  • 0

#5 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 14 julio 2014 - 09:05

por favor, si alguien me puede ayudar plisss...

Saludos
  • 0

#6 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 17 julio 2014 - 07:20

:cry:

Amigo debes leer acerca de objetos de JS asicomo los arrays para saber como explorar las respuestas.

Por que el undefined simplemente es por querer entrar aun indice que no existe.


  • 0

#7 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 17 julio 2014 - 11:47

Amigos, creo que ya me aclare un poco del error, les comento lo que sucede.

yo tengo esta funcion ajax, donde se la asigno a una variable:



delphi
  1. valid =  $.ajax({
  2.  
  3. url:'validar.php',
  4. data:{"validar":"true","asignaturas":$("#Asignaturas").val(),"usuario":$("#Seccion").val()},
  5. error: function(){
  6. alert("ha ocurrido un error");
  7. },
  8. type:"POST",
  9. success:function(datas){
  10.   alert(datas);
  11. //return datas;
  12. }
  13.  
  14. });



al realiza la consulta.. la funcion ajax me muestra el alert de forma correcta:

Imagen Enviada

pero si cambio el alert por el return y le hago un alert a la variable que le paso el resultado de ajax me muestra object.



delphi
  1. valid =  $.ajax({
  2.  
  3. url:'validar.php',
  4. data:{"validar":"true","asignaturas":$("#Asignaturas").val(),"usuario":$("#Seccion").val()},
  5. error: function(){
  6. alert("ha ocurrido un error");
  7. },
  8. type:"POST",
  9. success:function(datas){
  10.   //alert(datas);
  11. return datas;
  12. }
  13.  
  14. });
  15. alert(valid);



muestra lo siguiente:

[img width=800 height=381]http://webmail.vtr.net/~ccortesr/protected/myphotos/pwd/HES3LW8C/error_ajax_validar3.JPG[/img]

en el fondo.. la variable valid.. no esta tomando el resultado que entrega la funcion ajax.

por favor su ayuda.

Saludos


  • 0

#8 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 22 julio 2014 - 10:42

Sigues con lo mismo.

El objeto DATA, es el objeto de respuesta !! que es una serie de funciones, necesitas retornar un valor en la respuesta.


imaginanemos que consultas un archivo .php desde ajax con el siguiente codigo:



php
  1. $respuesta = array("esteeselnombrequevasarevisar" => true);
  2.  
  3. json_encode($respuesta);




ahora para recuperar el valor desde el JS



javascript
  1. success: function(data){
  2.     if(data.esteeselnombrequevasarevisar) { // la rsepuesta de true};



Lanzar preguntas de codigo que no entienes, es como cambiarle el aceite a un coche rentado, don't have sense.
}
  • 0

#9 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 23 julio 2014 - 10:01

Sigues con lo mismo.

El objeto DATA, es el objeto de respuesta !! que es una serie de funciones, necesitas retornar un valor en la respuesta.


imaginanemos que consultas un archivo .php desde ajax con el siguiente codigo:



php
  1. $respuesta = array("esteeselnombrequevasarevisar" => true);
  2.  
  3. json_encode($respuesta);




ahora para recuperar el valor desde el JS



javascript
  1. success: function(data){
  2.     if(data.esteeselnombrequevasarevisar) { // la rsepuesta de true};



Lanzar preguntas de codigo que no entienes, es como cambiarle el aceite a un coche rentado, don't have sense.
}


entonces no es posible con ajax, pasar la respuesta a una variable?, fuera de la funcion ajax?
  • 0

#10 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 mensajes
  • LocationMedellín Colombia

Escrito 23 julio 2014 - 10:13

Hola,

Lo que creo entender es que: en el alert() donde se muestra el valor "true" es porque está dentro del contexto como tal, pero al realizar el "return datas", realmente lo que estás retornando es la función como tal, es decir que el alert() te muestra un object.

Ahora bien, lo que dice "elporfirio" es que, lo que debes retornar es algo como esto: 

return datas.propiedad;

en donde data.propiedad puede ser el valor "bool" que la función puede tomar; en este caso "true" o "false".

Espero te sirva.

Saludos a todos
  • 0

#11 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 23 julio 2014 - 07:51

Hola,

Lo que creo entender es que: en el alert() donde se muestra el valor "true" es porque está dentro del contexto como tal, pero al realizar el "return datas", realmente lo que estás retornando es la función como tal, es decir que el alert() te muestra un object.

Ahora bien, lo que dice "elporfirio" es que, lo que debes retornar es algo como esto: 

return datas.propiedad;

en donde data.propiedad puede ser el valor "bool" que la función puede tomar; en este caso "true" o "false".

Espero te sirva.

Saludos a todos


tampoco, me entrega objeto tambien.. alguien tendra algun ejemplo que se pueda descargar.. donde al llamar una funcion ajax con jquery.. la retorne a una variable fuera de la funcion.
  • 0

#12 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 mensajes
  • LocationMedellín Colombia

Escrito 24 julio 2014 - 08:16

Hola

y al hacer lo siguiente:

alert(valid.d);

¿Qué te muestra?

Saludos
  • 0

#13 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 24 julio 2014 - 10:13

Hola

y al hacer lo siguiente:

alert(valid.d);

¿Qué te muestra?

Saludos


el alert lo muestra en blanco.. sin ningun mensaje... xD

porfa si alguien puede hacer un ejemplo sencillo de consultar un valor a una BD.. y si lo encuentra que retorne true.. sino false.. y que ese valor lo muestre en un alert pasado a una variable.

no me sirve el alert en la misma funcion ajax de jquery...

ya no se que mas hacer.. me rindo xD
  • 0

#14 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 24 julio 2014 - 03:16

Yo de AJAX estoy en -1334454543543235678075962 pero de los script que han puesto noto una leve incongruencia: primero existe una variable llamada data, pero más adelante en lugar de usar ésta se está pasando una llamada datas.
¿No será esto, también, parte del problemita?  *-)

Saludos,
  • 0

#15 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 24 julio 2014 - 04:36

Yo de AJAX estoy en -1334454543543235678075962 pero de los script que han puesto noto una leve incongruencia: primero existe una variable llamada data, pero más adelante en lugar de usar ésta se está pasando una llamada datas.
¿No será esto, también, parte del problemita?  *-)

Saludos,

no, porque sino en el firebug.. me mostrar error.. indicando data is no defined.. o algo similar..datas o data o pedro da lo mismo.. al tener esta funcion:



delphi
  1. success:function(datas){ // si dice datas return o alert datas
  2.         //alert(datas);
  3.         return datas;     
  4.       }
  5.  
  6. success:function(pedrito){ //si dice pedrito return o alert pedrito
  7.         //alert(pedrito);
  8.         return pedrito;     
  9.       }



etc..
  • 0

#16 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 24 julio 2014 - 05:02



javascript
  1. valid =  $.ajax({
  2.  
  3.       url:'validar.php',
  4.       [b]data[/b]:{"validar":"true","asignaturas":$("#Asignaturas").val(),"usuario":$("#Seccion").val()},
  5.       error: function(){
  6.         alert("ha ocurrido un error");
  7.       },
  8.       type:"POST",
  9.       success:function([b]datas[/b]){
  10.         //alert([b]datas[/b]);
  11.         return datas;     
  12.       }
  13.            
  14.   });
  15. alert(valid);



Pues es que a mi el sentido común me dice que o es data o datas. Pero no ambas.  ^o|
Saludos,
  • 0

#17 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 24 julio 2014 - 07:58



javascript
  1. valid =  $.ajax({
  2.  
  3.       url:'validar.php',
  4.       [b]data[/b]:{"validar":"true","asignaturas":$("#Asignaturas").val(),"usuario":$("#Seccion").val()},
  5.       error: function(){
  6.         alert("ha ocurrido un error");
  7.       },
  8.       type:"POST",
  9.       success:function([b]datas[/b]){
  10.         //alert([b]datas[/b]);
  11.         return datas;     
  12.       }
  13.            
  14.   });
  15. alert(valid);



Pues es que a mi el sentido común me dice que o es data o datas. Pero no ambas.  ^o|
Saludos,


segun lo que entiendo yo xD.. tu codigo anterior estaria mal... porque a la funcion success le pusiste como argumento

delphi
  1. [b]datas[/b]

, por ende deberias retornar o generar el alert esa misma variable pasada y no datas, tendria que ser

delphi
  1. return [b]datas[/b]



Saludos.. y gracias por sumarte y querer ayudarme :D
  • 0

#18 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 25 julio 2014 - 02:06

segun lo que entiendo yo xD.. tu codigo anterior estaria mal... porque a la funcion success le pusiste como argumento

delphi
  1. [b]datas[/b]

, por ende deberias retornar o generar el alert esa misma variable pasada y no datas, tendria que ser

delphi
  1. return [b]datas[/b]



Saludos.. y gracias por sumarte y querer ayudarme :D

No es mi código. ES TU PROPIO CODIGO.

Saludos,
  • 0

#19 crinfo

crinfo

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 25 julio 2014 - 07:25


segun lo que entiendo yo xD.. tu codigo anterior estaria mal... porque a la funcion success le pusiste como argumento

delphi
  1. [b]datas[/b]

, por ende deberias retornar o generar el alert esa misma variable pasada y no datas, tendria que ser

delphi
  1. return [b]datas[/b]



Saludos.. y gracias por sumarte y querer ayudarme :D

No es mi código. ES TU PROPIO CODIGO.

Saludos,


si, te entiendo a lo que quieres llegar, parece que yo no me explique bien... y quise poner una cara feliz no de risa xD...

parece que mis signos no son los mismos de la pagina..
  • 0




IP.Board spam blocked by CleanTalk.