elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Problema en Jquery (ajax)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema en Jquery (ajax)  (Leído 5,904 veces)
:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Problema en Jquery (ajax)
« en: 15 Julio 2014, 14:54 pm »

Tengo un problema en la ejecución de un pedazo de cógido de javascript, que no entiendo porque no funciona quizá me puedan dar una mano.

Tengo mi documento 1.

Código
  1.          $("#codigo").blur(function(){
  2.  
  3.     $.ajax({
  4.     beforeSend: function(){
  5.     $('#status').html("Revisando...");
  6.     },
  7.     url: 'check.producto.php',
  8.     type: 'post',
  9.     data: $('#formid').serialize(),
  10.     success: function(resp){
  11.  
  12.     alert(resp);
  13.  
  14.     if(resp == "Existe"){
  15.     $("#codigo").attr("class", "form-control error");
  16.     $("#codigo").attr("style", "border-color: red;");
  17.     $("#status").html("<span class='form-error help-block'>Este codigo ya existe.</span>");
  18.     console.log(resp);
  19.     }else{
  20. $("#codigo").attr('class', 'form-control valid');
  21. $("#status").html("<span class='form-valid help-block'>Codigo nuevo.</span>");
  22.     console.log(resp);
  23.     }
  24.  
  25.                                console.log(resp);
  26.  
  27.     },
  28.     error: function(jqXHR, estado, error){
  29.     console.log(estado)
  30.     console.log(error)
  31.     },
  32.     complete: function(jqXHR, estado){
  33.     console.log(estado)
  34.     },
  35.     timeout: 10000
  36.     });
  37.  
  38.    });
  39.  

Acá tengo el formulario

Código
  1. <label for="codigo">
  2. <strong>Codigo:</strong>
  3. <input type="text" name="codigo" id="codigo" data-validation="required" class="form-control"/>
  4. <div id="status"></div>
  5. </label>
  6.  

El caso es que tengo un formulario de varios campos, una vez que se pierde el focus sobre el campo código se hace una verificación mediante ajax, de que el dato ingresado existe o no, con el siguiente código.

check.producto.php

Código
  1. <?php
  2.  
  3. require("../../system/config/database.php");
  4. require("../../system/database/DBMySQLi.php");
  5.  
  6. $db = new DB();
  7. $codigo = $_POST['codigo'];
  8.  
  9. $sql = "SELECT codigo FROM producto WHERE codigo = '$codigo'";
  10. $res = $db->execute($sql);
  11.  
  12. if($res->num_rows>0){
  13. echo "Existe";
  14. }else{
  15. echo "No existe";
  16. }
  17.  
  18.  
  19. ?>
  20.  

Entonces el código PHP verifica en la base de datos si el código existe o no y retorna un impreso de existe o no existe.

El problema se origina cuando entra al bucle de jquery del success:

Código
  1.                           success: function(resp){
  2.  
  3.     alert(resp);
  4.  
  5.     if(resp == "Existe"){
  6.     $("#codigo").attr("class", "form-control error");
  7.     $("#codigo").attr("style", "border-color: red;");
  8.     $("#status").html("<span class='form-error help-block'>Este codigo ya existe.</span>");
  9.     console.log(resp);
  10.     }else{
  11. $("#codigo").attr('class', 'form-control valid');
  12. $("#status").html("<span class='form-valid help-block'>Codigo nuevo.</span>");
  13.     console.log(resp);
  14.     }
  15.  
  16.                                console.log(resp);
  17.  
  18.     }
  19.  

El alert(resp); me demuestra que el valor retornado es "Existe".

Pero en el if(resp == "Existe"){ no entra al bucle.

Accede directamente al else, y en el console.log(resp); imprime "Existe".

No comprendo porque no accede por el If.

Alguna sugerencia?


En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Problema en Jquery (ajax)
« Respuesta #1 en: 15 Julio 2014, 18:39 pm »

Hmmm, es raro que no te imprima que resp es un objeto jqXHR, intenta agregar al $.ajax:

Código
  1. dataType: "text"
o

usa resp.responseText;


En línea

:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: Problema en Jquery (ajax)
« Respuesta #2 en: 15 Julio 2014, 19:01 pm »

Ya lo hice, y tengo los mismos resultados :(
En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Problema en Jquery (ajax)
« Respuesta #3 en: 15 Julio 2014, 19:12 pm »

¿Entonces se ejecuta el else? ¿Aparece "Codigo Nuevo" en #status?
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Problema en Jquery (ajax)
« Respuesta #4 en: 15 Julio 2014, 19:35 pm »

¿Quizás es un problema de whitespaces que no estamos viendo?

Código
  1. resp = $.trim(resp);
« Última modificación: 15 Julio 2014, 19:36 pm por MinusFour » En línea

:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: Problema en Jquery (ajax)
« Respuesta #5 en: 15 Julio 2014, 21:51 pm »

¿Entonces se ejecuta el else? ¿Aparece "Codigo Nuevo" en #status?

Exacto, es lo que me sale.

Voy a probar tu ultima sugerencia...
En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: Problema en Jquery (ajax)
« Respuesta #6 en: 15 Julio 2014, 21:56 pm »

Que problema mas sencillo de resolver y estuve como 3 horas jodiendo mi código sin necesidad.

a mi documento check.producto.php le agregue como 20 lineas en blanco, osea modifique el documento.

Y funcionó!

No entiendo nada! La cache hdp?


Sigo con cara de WTF  :xD
En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Problema en Jquery (ajax)
« Respuesta #7 en: 15 Julio 2014, 21:58 pm »

Exacto, es lo que me sale.

Voy a probar tu ultima sugerencia...

Otra cosa que puedes hacer es hacer indexOf()

Código
  1. if(resp.indexOf("Existe") != -1) { //Existe

Si esto ya de plano no te funciona, cambia la respuesta a Json

Código
  1. dataType: "json"

Código
  1. if(resp[0] == "Existe") { //Existe

Y en php

Código
  1.  
  2. if($res->num_rows>0){
  3. echo '["Existe"]';
  4. }else{
  5. echo '["No existe"]';
  6. }
  7.  

Edit: No se que haya pasado entonces XD

Si era un problema de la cache, asegurate que no vuelva a pasar eso:

En tu $.ajax()
Código
  1. cache: false;
« Última modificación: 15 Julio 2014, 22:01 pm por MinusFour » En línea

JorgeEMX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.615



Ver Perfil WWW
Re: Problema en Jquery (ajax)
« Respuesta #8 en: 15 Julio 2014, 22:00 pm »

Que problema mas sencillo de resolver y estuve como 3 horas jodiendo mi código sin necesidad.

a mi documento check.producto.php le agregue como 20 lineas en blanco, osea modifique el documento.

Y funcionó!

No entiendo nada! La cache hdp?


Sigo con cara de WTF  :xD

El caché generalmente es de los JS. Como tal no se ve problema alguno, otra cuestión podría ser la codificación de tu archivo PHP. En fin, para la otra puedes hacer un var_dump a tu respuesta para verificar que no es problema del tipo de dato que regreses.
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Problema en Jquery (ajax)
« Respuesta #9 en: 15 Julio 2014, 22:06 pm »

El caché generalmente es de los JS. Como tal no se ve problema alguno, otra cuestión podría ser la codificación de tu archivo PHP. En fin, para la otra puedes hacer un var_dump a tu respuesta para verificar que no es problema del tipo de dato que regreses.

Yo pense lo mismo que era un problema de codificación, pero está usando caracteres ASCII ("Existe" en JS y "Existe" en PHP) y me parece que estos permanecen igual en bastantes codificaciones, a menos que estes usando algo raro como caracteres arabes o no se.

No entiendo como la cache puede estar afectando el script, si estás recibiendo "Existe", no es como si estuvieras recibiendo un "No existe" grabado en la cache del navegador.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pasar parametros con jquery y ajax « 1 2 »
Desarrollo Web
RedZer 14 22,898 Último mensaje 15 Marzo 2012, 21:48 pm
por kyuzodsc
Ayuda jquery ajax error internal serve 500
Desarrollo Web
andrex.125 1 2,960 Último mensaje 12 Diciembre 2014, 08:01 am
por engel lex
como generar php dompdf con jquery ajax
PHP
cv_olehc 3 7,495 Último mensaje 13 Marzo 2015, 22:02 pm
por engel lex
Problema con jQuery peticion Ajax
Desarrollo Web
Ali Baba 5 2,333 Último mensaje 4 Octubre 2017, 03:29 am
por Ali Baba
Problema al modificar datos - Jquery Ajax PHP
PHP
ka0s 1 2,403 Último mensaje 16 Noviembre 2017, 11:59 am
por ka0s
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines