Foros del Web » Programando para Internet » Jquery »

Problema con jquery utilizando ajax

Estas en el tema de Problema con jquery utilizando ajax en el foro de Jquery en Foros del Web. Muy buenas. Estoy haciendo una prueba con jquery y ajax y bueno es muy sencillo la cosa es que inserto un texto en un campo, ...
  #1 (permalink)  
Antiguo 22/05/2012, 17:10
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Problema con jquery utilizando ajax

Muy buenas.

Estoy haciendo una prueba con jquery y ajax y bueno es muy sencillo la cosa es que inserto un texto en un campo, y si pongo algo el campo tendría que ponerse con una clase el cual hace que le aparezca un color verde, si no pues un color rojo, más que nada trasteando.

Este es mi código jQuery:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $('#addCity').click(function() {
  3.  
  4.         $('#cityname').addClass('in_processing');
  5.        
  6.         $.ajax({
  7.             type : 'POST',
  8.             url : 'post.php',
  9.             dataType : 'json',
  10.             data: {
  11.                 email : $('#cityname').val()
  12.             },
  13.             success : function(data){
  14.                 if(data.error === true){
  15.                     alert("entró :D");
  16.                 }
  17.                 else{
  18.                     $('#cityname').removeClass().addClass('in_submitted');
  19.                 }
  20.             },
  21.             error : function(XMLHttpRequest, textStatus, errorThrown) {
  22.                 $('#cityname').removeClass().addClass('in_error');
  23.             }
  24.         });
  25.         return false;
  26.     });
  27. });

Este el código HTML del formulario
Código HTML:
Ver original
  1. <ul class="form_fields_container">
  2.                     <li><label>Ciudad</label> <div class="form_input"><input name="cityName" id="cityname" type="text"></div></li>
  3.                     </ul>

Y este el PHP que lee lo que le pasa el jQuery
Código PHP:
<?php

$return
['msg'] = 'You\'ve entered: ' $_POST['email'];

echo 
json_encode($return);

?>
La cosa es que no veo el error :S si alguien me puede echar un cable se lo agradecería.

Un saludo :)
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #2 (permalink)  
Antiguo 23/05/2012, 08:58
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Problema con jquery utilizando ajax

Intenté buscar una solución al respecto probando diferentes opciones pero me sigue saliendo lo mismo y la verdad no sabría encontrar el error.. :S Me estoy volviendo loco con las 4 líneas . :(

A ver si alguien se da cuenta porque lo que es yo ..

Gracias
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #3 (permalink)  
Antiguo 23/05/2012, 10:34
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Problema con jquery utilizando ajax

Mirá, lo probé y a mi me funciona.

Cuando hago click en el elemento #addCity, se le agrega la clase "in_processing" al input. Cuando termina, se cambia esa clase por la de "in_submitted".

¿Cual es exactamente el problema? ¿Será un problema de CSS?
__________________
nahueljose.com.ar
  #4 (permalink)  
Antiguo 23/05/2012, 12:23
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Problema con jquery utilizando ajax

Cita:
Iniciado por Naahuel Ver Mensaje
Mirá, lo probé y a mi me funciona.

Cuando hago click en el elemento #addCity, se le agrega la clase "in_processing" al input. Cuando termina, se cambia esa clase por la de "in_submitted".

¿Cual es exactamente el problema? ¿Será un problema de CSS?
Es muy raro porque lo tengo implementado y nada.

La cosa es que si el campo está vacío y le doy a enviar tiene que salir el campo rojo, (una clase que le da ese color) si no el verde.. :S pero siempre sale rojo.

Lo revisaré :S

Gracias
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #5 (permalink)  
Antiguo 23/05/2012, 12:26
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Problema con jquery utilizando ajax

En el código que posteaste no hay NADA que indique un error en caso de que el campo esté vacío.

Si sale siempre en rojo, es porque la clase in_submitted tiene ese estilo.

Tampoco entiendo esto:
Código Javascript:
Ver original
  1. if(data.error === true){
  2.                     alert("entró :D");
  3.                 }

data.error no existe. data sólo tiene msg (el cual lo generaste en el PHP)
__________________
nahueljose.com.ar
  #6 (permalink)  
Antiguo 23/05/2012, 12:34
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Problema con jquery utilizando ajax

Mm. Viéndolo otra vez, seguramente se está ejecutando la función en error. Si es así, el error es con la consulta.

Código Javascript:
Ver original
  1. error : function(XMLHttpRequest, textStatus, errorThrown) {
  2.                 $('#cityname').removeClass().addClass('in_error');
  3.             }

Poné un alert o algo ahí. Si se ejecuta, es que no se está completando el pedido AJAX. ¿Estás ejecutando el código localmente o en servidor?
__________________
nahueljose.com.ar
  #7 (permalink)  
Antiguo 23/05/2012, 16:18
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Problema con jquery utilizando ajax

Cita:
Iniciado por Naahuel Ver Mensaje
Mm. Viéndolo otra vez, seguramente se está ejecutando la función en error. Si es así, el error es con la consulta.

Código Javascript:
Ver original
  1. error : function(XMLHttpRequest, textStatus, errorThrown) {
  2.                 $('#cityname').removeClass().addClass('in_error');
  3.             }

Poné un alert o algo ahí. Si se ejecuta, es que no se está completando el pedido AJAX. ¿Estás ejecutando el código localmente o en servidor?
Con la consulta? En el php?

Lo estoy ejecutando en localhost, rollo http.//localhost/proyecto

El php que "consulta" es este:

Código PHP:
<?php

$return
['msg'] = 'You\'ve entered: ' $_POST['email'];

echo 
json_encode($return);

?>
No hay más, es una simple prueba :S

Modifiqué el ajax.js
Código Javascript:
Ver original
  1. $.ajax({
  2.             type: 'POST',
  3.             url: 'post.php',
  4.             dataType: 'json',
  5.             data: {
  6.                 email : $('#cityname').val()
  7.             },
  8.             success : function(){
  9.                 alert('entró')
  10.             },
  11.             error : function(XMLHttpRequest, textStatus, errorThrown) {
  12.                 $('#cityname').removeClass().addClass('in_error');
  13.             }
  14.         });

Y tampoco :S !! Vaya cosa más rara..

Gracias
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?

Etiquetas: html, php
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 18:12.